php - 通过 PHP SDK 以用户身份发布到 Facebook 粉丝页面提要

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

我目前遇到了 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/

相关文章:

json - 无法从 Facebook API 获取 age_range

ios - Facebook 视频分享错误 IOS Objective C

php - 从 while 循环向数据库插入多行

获取字符编号的PHP函数

php - 根据父 ID 从四个数组创建多维数组

facebook - FB如何选出一个用户资料中排名前十的好友?

php - Composer 自动加载+ facebook sdk

facebook - 我可以将 facebook all.js 文件作为非缩小(扩展)文件获取吗?

facebook - 如何通过 FQL 和 Graph API 获取最近的事件故事?

PHP 似乎将 null 定义为自身。这是如何运作的?