facebook-graph-api - Facebook 应用 : post to page now failing with "An unknown error has occurred"/OAuthException

标签 facebook-graph-api oauth facebook-php-sdk facebook-apps

我有一个将每日状态发布到页面墙上的应用程序,状态作为应用程序发布(参见 http://facebook.com/fragrantheart)。我的应用程序是“香心每日冥想”,如您所见,多年来一直非常愉快地发布。 但是,现在,当它发布时,我收到错误消息:

 [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 权限。

最近发生了什么变化会导致这个错误?代码没有改变。

我还尝试了服务器端身份验证流程来获取访问 token ,当通过调试器运行该 token 时,我得到:

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

但是当像这样使用访问 token 时:(显然,YYYYYYY 被替换为实际 token ):

$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

感谢您的帮助。

最佳答案

哈哈 - 所以最初的问题实际上是缺少 access_token;但是,当我将 access_code 粘贴到我的代码中时,我错误地复制了我的访问 key ;因此是“无效的 OAuth 访问 token ”。噢!

所以对于处于相同情况的其他人(从 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'));

要获得永久访问 token ,请按照 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 复制代码并转到

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

访问 token 将位于页面正文中。

关于facebook-graph-api - Facebook 应用 : post to page now failing with "An unknown error has occurred"/OAuthException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12836731/

相关文章:

git - git : "already exists and is not a valid git repo" 错误

php - 如何在 Facebook Graph PHP SDK 中下载当前用户的所有照片?

php - 图返回错误 : Invalid appsecret_proof provided in the API argument

ajax - 点赞按钮显示我的点赞数,但在 facebook api 中不可见

facebook - 如何在 Codeplex 上使用 C# facebook sdk 在 facebook 粉丝页面上发布图像

http - 重复请求(使用 Burp Suite 或类似工具)

c# - OAuth 用户身份验证与服务器身份验证和访问层相结合

Facebook Graph API - overall_star_rating 和 rating_count 字段未在 v2.10 中填充

java - Facebook 登录按钮适用于我的帐户,但不适用于我 friend 的帐户

php - Facebook 网站上的图片库 (PHP/JSON)