我有一个facebook应用程序和一个facebook(粉丝)页面 . 我想发布到页面,作为应用程序验证(如果可能),从作为cron作业定期运行的php脚本 .
我正在使用官方facebook php sdk .
我想用 $facebook->api($pageId."/feed", 'POST', $post);
发布到页面,其中$ post包含所需的 message
和 link
键,并且还应包含 access_token
.
为了获取访问令牌,我尝试使用 $facebook->getApplicationAccessToken()
,并向 https://graph.facebook.com/oauth/access_token
发出curl请求(相同的结果) .
我得到的回应是: OAuthException: (#200): The user hasn't authorized the application to perform this action
我能够发布到页面,但是来自 https://graph.facebook.com/me/accounts
的access_token,这要求我提供用户's access token in the first place. The user'并且他的页面的令牌似乎到期,最多在60天之后,所以这个解决方案并不好 .
我尝试授予像这里解释的权限Authorizing a Facebook Fan Page for Status Updates,但我仍然从之前得到错误 .
Any solution on how to post to a facebook page which does not involve user login will be welcome!
2 回答
您可以使用Graph API Explorer通过应用程序获取所需的access_token以便发布到Facebook页面 . 在资源管理器中:
选择代表您要做的事情的应用程序(帖子,等等) .
在网址字段中输入网页的网址:https://graph.facebook.com/page' .
点击“获取访问令牌以获取它 .
你会得到一个对话框;选择授予此应用程序的权限 . 至少publish_stream,offline_access和manage_pages(用于发布到页面墙帖子)
您将获得一个可以与您的应用一起使用的新访问令牌 . 发布到您的页面 .
无法使用Application access_token在页面上发布,并且无需登录用户(至少一次获取
access_token
,稍后可以extended)并请求适当的权限 .要以用户身份发布到Page,您需要
publish_stream
用户授予的权限 .要将页面作为页面发布,您需要
publish_stream
和manage_pages
权限由User和Page access_token授予,这些权限可以从accounts
user连接中检索 .