【发布时间】:2014-02-19 02:06:02
【问题描述】:
好的。这已经让我忙了两天了,我现在正在绞尽脑汁。我已经将它发布在论坛上,询问了朋友,广泛搜索并查看了 stackoverflow。我不是第一个发布这个问题的人,但我在回复中找不到答案,所以我创建了这个新问题。
这就是我想要做的: - 我想在 PHP 中将消息作为 Facebook 应用程序发布到用户的墙上。 - 我想做这个服务器到服务器,所以没有对话框和任何用户交互(他可能在那一刻修剪草坪,我只关心) - 此用户已授予我的应用程序权限,这些权限是:1)manage_pages,2)publish_stream,3)read_stream - 我正在使用 PHP Facebook SDK - 这是我的代码:
/* Facebook */
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_APP_SECRET
));
/* string */
$accessToken = $facebook->getAccessToken();
/* Array<string> */
$postFields = array("message"=>"test2", "access_token"=>$accessToken);
$facebook->api('/{the-id-of-the-facebook-user}/feed','post',$postFields);
这是问题: 我不断收到以下错误:(#200) 用户尚未授权应用程序执行此操作。
这是一个废话,因为用户已经授权了我的应用程序(那个用户也恰好是我,我检查了应用程序下的所有权限,他们很好)。
任何建议都将不胜感激,因为我不知道该去哪里找了。我知道其他人以前发布过这个问题,但答案并不令人满意。提前非常感谢。
【问题讨论】:
-
看来
publish_stream有问题。确保您已授予publish_stream权限。 -
您不应该自己处理 access_token - SDK 完全有能力自行处理。但是既然你无论如何都在调用 getAccessToken - 它返回什么值?调试工具对那个令牌有什么要说的? developers.facebook.com/tools/debug
-
我有 publish_stream 权限。令牌是一长串带有“|”的字母和数字中间某处。当我输入访问令牌时,调试器返回以下内容:'Toepassings-ID: 152046464919618 : Uitjezelf'
-
publish_stream表示发布到用户的墙和该用户的朋友墙 [developers.facebook.com/docs/authentication/permissions/]。您确定要发帖到获得publish_stream权限的用户墙上还是发给他的一个朋友? -
是的,我的 Facebook 应用应该发布到授予此应用权限的 facebook 用户的墙上。他已经给予了许可。我可以检查一下,因为我还管理该用户的帐户。在该应用程序选项卡下清楚地表明此应用程序有权发布消息、状态更新、图片等。
标签: php facebook facebook-wall