无法发布到应用页面

时间:2012-04-03 10:07:22

标签: php facebook-php-sdk

Facebook的文档不充分,充其量令人困惑。

我创建了一个应用,我为自己的业务创建了一个页面。我想使用php-sdk从我的网站发布该页面上的更新作为我的应用程序。

我让它与其他网页/网站完美配合,但似乎没有任何工作。

我需要offline_access,所以我按照文档中的建议跟踪了新的端点。

获取具有更长期限的access_token的顺序:

https://www.facebook.com/dialog/oauth?client_id={my_app_id}&redirect_uri=http://my_url.redirect/fb/fb_token.php&scope=publish_stream,offline_access,user_status,read_stream,email,user_groups,manage_pages&response_type=token

返回[TOKEN_1]

https://graph.facebook.com/oauth/access_token?client_id={my_app_id}&client_secret={my_app_secret}&grant_type=fb_exchange_token&fb_exchange_token=[TOKEN_1]

返回[ACCESS_TOKEN]

https://graph.facebook.com/me/accounts?access_token=[ACCESS_TOKEN]

返回我的网页和应用列表以及相关的ID和访问代码。这是我得到我的最终[DEFINITIVE_ACCESS_TOKEN]&& [PAGE_ID]

$facebook = new Facebook(array(
    'appId'  => {my_app_id},
    'secret' => {my_app_secret},
    'cookie' => false,
    'oauth'  => true
));

try {
    $attachment =  array(
        'access_token'  => [DEFINITIVE_ACCESS_TOKEN],
        'message'       => {my_message},
        'name'          => {my_title},
        'link'          => {my_url},
        'description'   => {my_description},
        'picture'       => {my_image_url},
     );
     $publishStream = $facebook->api('/[PAGE_ID]/feed', 'POST', $attachment);
 } catch (FacebookApiException $e) {
    die($e);
 }

这返回了一条错误消息“OAuthException:(#200)actor所在页面的帖子也不能包含target_id”

我哪里错了?是否有一个教程可以让它在任何地方完美地工作,或者我们应该都是读者并猜测它应该如何完成?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我注意到您正在使用离线访问

自2012年5月1日起,离线访问将不再可用。

看到这个 https://developers.facebook.com/roadmap/offline-access-removal/

确保您已完成此操作。

〜ķ