使用应用程序访问令牌调用 facebook api 并从用户页面检索提要
Call facebook api with app access token and retrieve feed from user's page
这听起来像是一个愚蠢的问题,但我不明白令牌是如何工作的。
上下文:我有一个网络应用程序,用户可以在其中按下一个按钮,然后他们使用他们的 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”以获取此页面的帖子,然后在我的网络应用程序中显示它们。为此,我将 Facebook SDK 用于 PHP 并且我这样做:
- 使用我的应用程序 ID 和我的密码登录。
- 我得到一个访问令牌(我们称之为 my-app-access-token)
我发出请求“{page_id}/feed”,发送 my-app-access-token 但是 失败
- 那么,为什么它 失败了 ?我知道这与访问令牌有关,因为如果我使用 user-access-token 我可以在服务器中正常执行请求,但如果我使用 my-app-access-token,我不能。
- 为什么我不能使用 my-app-access-token 如果用户已授予我 manage_pages 的权限?
- 我想到的替代方案是,在步骤 3 中,我也可以存储 user-access-token。但是如果我这样做,我认为令牌会在一段时间后过期,对吗?
I do the request '{page_id}/feed', sending my-app-access-token but fails
如果该页面未 public 或以任何方式限制访问,则您不能使用应用访问令牌,但需要为可以查看该页面的用户使用用户访问令牌,或者页面访问令牌。
[...] But if I do that, I think that the token will expire after some time, right?
扩展页面访问令牌没有默认到期时间。 (但是,它们可能会因其他原因而过期,例如,如果其令牌用于请求页面令牌的页面管理员用户更改了他们的帐户密码。)
https://developers.facebook.com/docs/facebook-login/access-tokens
这听起来像是一个愚蠢的问题,但我不明白令牌是如何工作的。
上下文:我有一个网络应用程序,用户可以在其中按下一个按钮,然后他们使用他们的 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”以获取此页面的帖子,然后在我的网络应用程序中显示它们。为此,我将 Facebook SDK 用于 PHP 并且我这样做:
- 使用我的应用程序 ID 和我的密码登录。
- 我得到一个访问令牌(我们称之为 my-app-access-token)
我发出请求“{page_id}/feed”,发送 my-app-access-token 但是 失败
- 那么,为什么它 失败了 ?我知道这与访问令牌有关,因为如果我使用 user-access-token 我可以在服务器中正常执行请求,但如果我使用 my-app-access-token,我不能。
- 为什么我不能使用 my-app-access-token 如果用户已授予我 manage_pages 的权限?
- 我想到的替代方案是,在步骤 3 中,我也可以存储 user-access-token。但是如果我这样做,我认为令牌会在一段时间后过期,对吗?
I do the request '{page_id}/feed', sending my-app-access-token but fails
如果该页面未 public 或以任何方式限制访问,则您不能使用应用访问令牌,但需要为可以查看该页面的用户使用用户访问令牌,或者页面访问令牌。
[...] But if I do that, I think that the token will expire after some time, right?
扩展页面访问令牌没有默认到期时间。 (但是,它们可能会因其他原因而过期,例如,如果其令牌用于请求页面令牌的页面管理员用户更改了他们的帐户密码。)
https://developers.facebook.com/docs/facebook-login/access-tokens