Facebook, three read tools on the user token - #21
Merged
Merged
Conversation
Every tool reads through /me, so the one user token a grant already stores is the only credential involved. That is what makes this half of Meta buildable today: Pages and Instagram are a separate use case in the console, and each Page there carries its own token the executor cannot swap per call. Paths carry no version so Meta applies the app's own default. Pinning one from memory would fail every call once that version is retired, for a reason nothing in the error explains. The token trade is Threads' minus the refresh. Facebook has no th_refresh_token equivalent for a user token, so a grant dies at sixty days and reconnecting is the only path. longLivedRefresh is absent on purpose. Ships experimental. No request in this file has reached Meta. Closes #20
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the personal half of Meta:
get_me,list_my_posts,list_liked_pages, as a manifest.All three read through
/me, so the single user token a grant already stores is the only credential involved. That is the whole reason this half is buildable now. Pages and Instagram are a separate use case in Meta's console (confirmed 2026-08-17), and each Page there carries its own token that the executor cannot swap per call. They stay out until that capability is designed.Two decisions worth naming.
No version in any path. Meta applies the app's own default when the path carries none. Pinning a version from memory risks naming one already retired, which would fail every call for a reason the error does not explain. A test asserts no
/vNN.N/appears in the manifest, so pinning it later is a deliberate act.No
longLivedRefresh. The code exchange is traded once for a sixty day token throughfb_exchange_token, the same shape Threads uses. Facebook has noth_refresh_tokenequivalent for a user token, so a grant dies at sixty days and reconnecting is the only path. Its absence is the accurate model, not an omission.Paging reuses the Meta cursor shape Threads already proved, including the trap where the cursor survives on the last page and only
paging.nextsays whether more exists.Maturity is
experimental, and that is the honest label: no request in this file has reached Meta. The fixtures are written from the documentation, which catches a wrong shape and cannot catch a wrong document. Promotion tobetaneeds a real connection, which needs a tunnel andFACEBOOK_CLIENT_ID, and stays a human act.Closes #20