我有一个应用程序将每日状态发布到页面墙,状态将作为应用程序发布(请参阅http://facebook.com/fragrantheart)。我的应用程序是“Fragrant Heart Daily Meditations”,正如你所看到的,已经很愉快地发布了很多年了。 但是,现在,当它发布时,我收到错误:
[message] => An unknown error has occurred.
[type] => OAuthException
[code] => 1
这是我在服务器上运行的代码(PHP api):
$facebook = new Facebook(array('appId'=>'148279321865482', 'secret'=>'XXXXXX', 'cookie'=>false));
$target_id = '124924677541618'; // Fragrant Heart Meditation Page
$facebook->api("/{$target_id}/feed", 'POST', array('message'=>$msg));
根据我的阅读,不需要access_token,因为该页面已授予我的应用publish_stream权限。
最近会发生什么变化导致此错误?代码没有改变。
我还尝试了服务器端身份验证流程来获取访问令牌,当通过调试器运行该令牌时,我得到:
App ID: 148279321865482 : Fragrant Heart Daily Meditations
User ID: 100001170589484 : Elisabeth Blaikie
Issued: 1289470487 (over a year ago)
Expires: Never
Valid: True
Origin: Web
Scopes: create_note manage_pages offline_access photo_upload publish_actions publish_stream share_item status_update video_upload
但是在使用这样的访问令牌时:(很明显,YYYYYYY被替换为实际令牌):
$facebook = new Facebook(array('appId'=>'148279321865482', 'secret'=>'XXXXXX', 'cookie'=>false));
$target_id = '124924677541618'; // Fragrant Heart Meditation Page
$facebook->api("/{$target_id}/feed", 'POST', array('message'=>$msg, 'access_token'=>'YYYYYYY'));
我收到错误:
[message] => Invalid OAuth access token.
[type] => OAuthException
[code] => 190
感谢您的帮助。
答案 0 :(得分:3)
因此对于处于相同情况的其他人(自动从PHP服务器发布到您自己的页面),正确的代码是
$facebook = new Facebook(array('appId'=>'YOUR APP ID', 'secret'=>'YOUR APP SECRET', 'cookie'=>false));
$target_id = 'YOUR PAGE ID';
$facebook->api("/{$target_id}/feed", 'POST', array('message'=>'YOUR MESSAGE', 'access_token'=>'YYYYYYY'));
要获取永久访问令牌,请按照http://developers.facebook.com/docs/authentication/server-side/中的步骤进行操作,具体步骤1和4:
以您要发布到的页面的所有者身份登录。转到
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID
&redirect_uri=YOUR_REDIRECT_URI
&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
&state=SOME_ARBITRARY_BUT_UNIQUE_STRING
COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES应为 publish_stream ,以及您需要的任何其他权限。 接受请求,该请求将重定向回YOUR_REDIRECT_URI(必须与您的应用设置中的域相同) 从重定向URI复制CODE并转到
https://graph.facebook.com/oauth/access_token?
client_id=YOUR_APP_ID
&redirect_uri=YOUR_REDIRECT_URI
&client_secret=YOUR_APP_SECRET
&code=CODE_GENERATED_BY_FACEBOOK
访问令牌将位于页面正文中。