我目前遇到了 Facebook API 的问题,而 2012 年夏季并未出现过这个问题。 在我的 Facebook 应用程序中,用户可以在文本区域中输入一些文本,然后将其发布到 Facebook 粉丝页面,就像他自己访问 Facebook 页面并将其发布到那里一样。
因此,我的应用需要 publish_stream
扩展权限才能发布到页面提要。
为了解决帖子本身,我做了以下事情:
try{
$response_object = $fb->api('XXX/feed', 'POST', array(
'message' => $input->post('user_text'),
));
}
catch(Exception $e){
die($e->getMessage());
}
去年,这个功能运行没有任何问题。在页面的提要(上面代码片段中的 PageId 替换为 XXX)上,使用该应用的用户在页面上出现了一篇帖子。
令我惊讶的是,当我今天尝试做同样的事情时,上面代码片段中的异常却被拒绝了。我没有改变任何使用 fb API 处理数据的方式。
我收到的消息如下:
(#283) Requires extended permission: manage_pages
我不需要以页面管理员的身份发帖,而是以用户的身份发帖。我在使用publish_stream权限进行授权时检索了用户访问 token ,但我不想拥有manage_pages
权限,因为我不需要管理用户页面。
我想做的只是以使用该应用程序的用户身份发布到粉丝页面。
Facebook 最近是否对“post-to-feed 程序”进行了任何更改,还是我个人错过了某些内容?
提前致谢 托马斯
最佳答案
抱歉,我太自私了。我在这里提出问题几天后就解决了这个问题。不要问我为什么,但是通过在以用户身份发布到页面提要时使用 CURL,一切都会按预期进行。
<?php
$postfields = array(
'message' => 'The message to be posted on the feed',
'link' => 'http://anyurl.com',
'access_token' => 'A_VALID_USER_ACCESS_TOKEN', // This is the important part, don't miss it
);
$posturl = 'https://graph.facebook.com/PAGE_ID/feed';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $posturl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_close($ch);
?>
请注意,您不允许发布预定义的内容,但始终允许用户发布消息。否则,Facebook 将暂停您的应用程序发布到页面提要的权限。
关于php - 通过 PHP SDK 以用户身份发布到 Facebook 粉丝页面提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17020585/