使用PHP发布到用户的墙上

时间:2012-08-10 08:45:35

标签: php facebook facebook-wall

O.K。这让我忙了2天,现在我正在敲打脑子。我已经在论坛上发帖,问朋友,广泛搜索它并查看stackoverflow。我不是第一个发表这个问题的人,但我在答复中找不到答案,这就是为什么我要创建这个新问题。

这是我正在尝试做的事情: - 我想在PHP中以Facebook-app的形式向用户的墙发布消息。 - 我想做这个服务器到服务器,所以没有对话框和任何用户交互(他可能在那个时刻割草坪,我所关心的一切) - 此用户已授予我的应用权限,这些权限包括: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)用户未授权应用程序执行此操作。

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

任何建议都会受到高度赞赏,因为我不知道在哪里看。我知道其他人之前发过这个问题,但答案并不令人满意。非常感谢。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

然而,奇怪的是,这篇文章没有出现在时间轴上,而是出现在一个单独的页面上。此页面的顶部没有用户配置文件,就像普通Facebook页面一样。它在查询字符串中也有一个storyID参数。我无法弄清楚我在哪个页面以及为什么它不会出现在时间轴上。

我试图发布的Facebook页面是公司页面。但它并没有像通常情况那样附加到(正常的)Facebook页面(一个人)。最后,我确实设法发布到属于“普通”facebook页面的页面页面。因此,在大多数情况下,我的代码现在可请注意,Facebook SDK中的文档和http://developers.facebook.com的文档仍有很多改进。目前还不是很清楚如何执行某些操作。我花了很多时间在一个WP7应用程序上用于Facebook功能,现在我花了至少4天的时间来为这个网站工作。我决定编写自己的SDK并在将来扩展它。

感谢大家的时间和帮助。 Stackoverflow晃动!

答案 2 :(得分:-1)

如果您要发布的Feed来自已授予权限的同一用户,则可以将me代替{the-id-of-the-facebook-user}。我只是尝试了这个并且它有效:

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

无需发布access_token。用户提供的权限只是publish_actions

相关问题