2

我目前正面临 2012 年夏天没有出现的 Facebook API 问题。在我的 facebook 应用程序中,用户可以在 textarea 中输入一些文本,然后将其发布到 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 权限授权时检索了用户访问令牌,我不想拥有该manage_pages权限,因为我不需要管理用户页面。

我想做的只是以使用该应用程序的用户身份发布到粉丝页面。

facebook 最近在“post-to-feed 程序”上有什么改变吗?还是我个人错过了什么?

提前感谢托马斯

4

2 回答 2

1

这可以与问题相关联,该问题禁止作为给定页面管理员的用户在该页面的提要上发布(作为用户而不是页面)。

如果您尝试以普通用户(而不是页面管理员)的身份发布,请检查是否会发生同样的情况。根据我的经验,平均。如果应用程序具有权限,用户可以这样做:publish_stream、publish_action。

这是我的错误报告:https ://developers.facebook.com/bugs/167764356741336?browse=external_tasks_search_results_51f780dd6e9da2d82532422

于 2013-07-30T09:06:29.977 回答
1

抱歉这么自私。在我在这里提出问题后几天,我已经解决了这个问题。不要问我为什么,但通过在以用户身份发布到页面提要时使用 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 将暂停您的应用程序被允许发布到页面提要。

于 2013-07-30T06:45:47.970 回答