介绍
我有一个Facebook粉丝页面,我正在发布更新.要做到这一点,我正在使用一个长期存取的访问令牌,该令牌每60天到期并具有权限:'manage_pages'和'publish_stream'.
经过研究,我发现没有" 这就是它 "的解决方案,所以我创建了一个描述我的问题的新帖子,同时将我发现的所有内容链接到摘要.它变得有点大了(我的道歉).
要获得短期访问令牌,我通常按照此处所述的步骤操作.
- 转到https://developers.facebook.com/tools/explorer/,然后从左侧的第一个下拉菜单中选择您的应用.
- 单击"获取访问令牌"按钮,在"选择权限"窗口中,单击"扩展权限"并检查manage_pages和publish_stream,然后单击"获取访问令牌"蓝色按钮.
- 在此步骤中,系统可能会要求您为应用添加访问Facebook帐户的权限,接受.
- 接下来,单击"GET"下拉列表旁边的文本字段末尾,并替换:me/accounts的数字,然后单击此文本字段旁边的蓝色按钮.
- 您将获得所有页面的令牌,包括您的应用页面.在列表中找到您的页面名称,如下所示:"name":"您的页面名称"
- 找到页面后,复制页面的访问令牌(会很长),如下所示:"access_token":"XXXXXXXX".同时复制页面的ID:"id":"XXXXX".
运用
https://graph.facebook.com/oauth/access_token?
client_id=[clientid]
&client_secret=[clientsecret]
&grant_type=fb_exchange_token
&fb_exchange_token=[shortlivedaccesstoken]
Run Code Online (Sandbox Code Playgroud)
例如,在浏览器中或通过curl请求,我将返回60天的长期访问令牌.(来源)
正如Facebook API文档所描述的那样,长期访问令牌无法刷新.当然,我可以使用上面的端点刷新令牌,并获得一个新的长期令牌,返回相同的到期日期.
编辑:要在粉丝页面墙上创建一个帖子(作为页面用户),我正在做某事.像这样:
$this->fb = new Facebook(array(
'appId' => [app-id],
'secret' => [app-secret]
));
//~Get data from DB here~
//~some error handling in case data fetching failed~
$fbToken = '';
$fbToken = *[facebook access token]*;
$mediaData = array(
'picture' => [picture-url],
'message' => [message], …Run Code Online (Sandbox Code Playgroud) php facebook facebook-graph-api facebook-php-sdk facebook-access-token
我正在使用本教程(来自该页面的第一个答案)。
简而言之,它使用 FB 应用程序和 PHP CURL GET 通过 HTTP 发布到您的 Facebook 页面。我已经让它工作了,并且可以使用正确的令牌发布到我的页面(作为我的页面)。
但是,页面访问令牌只能持续一个小时,这意味着您必须通过生成新令牌不断地重新授权。我如何设置并忘记,或以其他方式扩展我的令牌?我已阅读 facebook 文档,但无法将其应用到我的场景中。
我只想授权一次,接收令牌并让我的网络表单能够发布到我的页面。