Ich*_*rus 15 facebook facebook-page restfb facebook-graph-api facebook-access-token
我在Facebook有一个商业页面(在Facebook俗语中称为粉丝页面).
我希望post to that Page每当用户对我的应用程序采取某种操作时.我想发布为Page本身而不是用户(即来自我的个人帐户).帖子将来自我的外部服务器(我正在使用restFB).
我已经完成了使用适当manage_pages的页面权限授权我的个人帐户的步骤.我还获得了页面的访问令牌.我甚至可以按照我想要的那样发布到该页面.问题是我获得的令牌(通过他们的开发人员工具图浏览器)到期时间为一小时.我需要它比这更持久,最好永远.
我已经浏览了互联网,包括SO的答案,大多数帖子都指向可怕的FB文档或模糊引用将我的外部应用程序挂钩到Facebook应用程序并通过它发布.我已经尝试过这项工作,但我很困惑整个过程,坦率地说(例如,什么是回调地址?).
无论如何,我希望用简单的英语逐步说明getting a long lasting access token我可以用来从一个应用程序发布到Facebook粉丝页面.
请不要参考FB文档.这很糟糕.我至少经历了十几次.
谢谢.
Sah*_*tal 30
以下是您可以遵循的一些步骤,以便为您的粉丝页面获取永不过期的令牌:
首先,您需要获得长期存在的用户访问令牌(在2个月内到期).要获得此信息,请拨打以下电话:
GET /oauth/access_token? grant_type=fb_exchange_token& client_id={app-id}& client_secret={app-secret}& fb_exchange_token={short-lived-token}
Run Code Online (Sandbox Code Playgroud)
更多细节在这里.如果你对此有任何困难,请告诉我.
使用您在上面步骤中获得的令牌获取页面永不过期的访问令牌(不是普通令牌,这是主要区别):
$facebook->api("/PAGE_ID?fields=access_token");
Run Code Online (Sandbox Code Playgroud)因此,概念是,为了获得长期存在的页面令牌,您应该在进行调用时使用长期存在的用户令牌.
Seb*_* C. 13
@Shadowfax是完全正确的.只是为了完成工作流程:
manage_pages权限获取短期用户access_token .从服务器,发出@Shadowfax请求:
GET /oauth/access_token? grant_type=fb_exchange_token&client_id={your-app-id}& client_secret={your-app-secret}&fb_exchange_token={short-lived-user-access_token}
与主机graph.facebook.com和端口443.
您必须从服务器发出此请求,因为它包含您的应用程序密钥.
从服务器,您现在可以通过使用此长版本替换用户access_token来查询facebook
从服务器,通过使用您的长期用户access_token获取页面access_token,方法是查询用户帐户:
GET /{user-id}/accounts?access_token={long-live-token}
您将获得其id和access_token的所有用户页面.
或者,如果您已经知道其page_id,则可以直接查询特定页面
GET /{page-id}/?fields=access_token&access_token={long-live-token}
正如@Shadowfax所说,只要用户(您)没有撤销您的应用程序权限,此页面的长期令牌将永久持续.
| 归档时间: |
|
| 查看次数: |
13138 次 |
| 最近记录: |