【发布时间】:2017-02-17 16:31:44
【问题描述】:
这听起来像是一个愚蠢的问题,但我不明白令牌是如何工作的。
上下文:我有一个 web 应用程序,用户可以在其中按下按钮并使用他们的 facebook 凭据登录,给我“manage_pages”权限。 webapp 的想法是在服务器上每 5 分钟运行一个 cron,它将检索用户的帖子并将其显示在 webapp 中。
步骤:
- 用户单击按钮,登录到 facebook(这样我就可以获得访问令牌,我们称之为 user-access-token)。
- Webapp 发出请求“/me/accounts”(使用 user-access-token),因此我可以获取用户页面之一的页面 ID。
- Webapp 向我的内部 API 发出请求,并将用户的 PageID 存储在数据库中。
现在,我有提到的 cron,它每 5 分钟发出一次请求“{page_id}/feed”以获取此页面的帖子,然后在我的 web 应用程序中显示它们。为此,我正在使用 Facebook SDK for PHP,我这样做了:
- 使用我的应用 ID 和密码登录。
- 我得到一个访问令牌(我们称之为 my-app-access-token)
-
我发出请求“{page_id}/feed”,发送 my-app-access-token 但失败
- 那么,为什么它失败?我知道这与访问令牌有关,因为如果我使用 user-access-token 我可以在服务器中执行请求,但如果我使用 my-app-访问令牌,我不能。
- 如果用户授予我 manage_pages 权限,为什么我不能使用 my-app-access-token?
- 我想到的替代方案是,在步骤 3 上,我也可以存储 user-access-token。但是如果我这样做,我认为令牌会在一段时间后过期,对吧?
【问题讨论】:
标签: facebook-graph-api access-token