2

好的,这已经让我忙了 2 天了,我现在正在绞尽脑汁。我已经将它发布在论坛上,询问了朋友,广泛搜索并查看了 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)用户尚未授权应用程序执行此操作。

这是一条废话,因为用户已授权我的应用程序(该用户也恰好是我,我检查了应用程序下的所有权限,它们很好)。

任何建议将不胜感激,因为我不知道去哪里找了。我知道其他人以前发布过这个问题,但答案并不令人满意。提前非常感谢。

4

3 回答 3

0

我无法弄清楚是什么导致了错误。我尝试了多种角度。在某些情况下,我确实设法在墙上发布了一些内容,因为 api 返回了帖子的 ID,我可以将其输入浏览器以查看帖子(www.facebook.com/{the-id-of-the-post })。

然而奇怪的是,这篇文章没有出现在时间线上,而是出现在一个单独的页面上。此页面没有像普通 Facebook 页面那样在顶部有用户个人资料。它还在查询字符串中有一个storyID 参数。我不知道我在哪个页面上,为什么它没有出现在时间线上。

我试图发布的 Facebook 页面是公司页面。但它不像通常情况那样附加到(一个人的)“正常”Facebook页面。最终,我确实设法发布到属于“正常”facebookpage 的页面的页面。所以在大多数情况下,我的代码现在可以工作了。可以说,Facebook SDK、它的文档和http://developers.facebook.com的文档还有很多需要改进的地方。如何执行某些操作还不是很清楚。我曾经在 WP7 应用程序上花了很多时间来实现 Facebook 功能,现在我花了至少 4 天的时间来让它在这个网站上工作。我决定编写自己的 SDK 并在未来对其进行扩展。

感谢大家的时间和帮助。Stackoverflow 摇滚!

于 2012-08-17T09:59:12.300 回答
0

不允许应用发布到用户的墙上。您只能以用户或不同用户(即用户对用户)的身份发布到墙上。如果你想通知用户某事,你应该使用 app-to-user Requests API 代替。

于 2012-08-10T11:59:43.027 回答
-1

如果您要发布的提要来自已授予权限的同一用户,您可以me{the-id-of-the-facebook-user}. 我刚试过这个,它奏效了:

$facebook->api(
    '/me/feed/',
    'post',
    array(
    'message' => "my message"
));

无需发布 access_token。而用户给的权限只有publish_actions

于 2012-08-10T09:28:46.957 回答