Facebook应用程序可以在粉丝页面墙上发布消息,但无法上传图像

时间:2012-08-02 12:29:47

标签: php facebook facebook-graph-api

我已经花了太多时间与此斗争,已经阅读了我在这个问题上找到的所有内容但尚无答案,请帮忙。

我正在尝试使用Facebook应用和图谱API在Facebook页面墙上发布图像:

<?php

$facebook = new Facebook(array(
          'appId'  => $this->settings['app_id'],
          'secret' => $this->settings['app_secret'],
          'fileUpload' => true,
));
$facebook->destroySession();
$filename = dirname(__FILE__) . '/upset.jpg';
$args = array(
    'message' => 'Test',
    'image' => '@' . realpath($filename),
    'access_token' => $this->settings['user_access_token'],
);
try {
    $result = $facebook->api($this->settings['fanpage_id'] . '/photos',
        'post', $args);
    var_dump($result);
}
catch(Exception $e) {
    echo $e->getType() . "\n" . $e->getMessage() . "\n";
}

此代码真的向页面墙贴了一条消息(当我用'/ feed'替换'/ photos'时),并且真的将照片发布到用户墙(当我更改$ this-&gt; settings ['fanpage_id时] ']到$ user_id)但不是照片到页面墙。

它确实上传了图片:$ result包含上传图片的ID,我可以在Facebook上看到它,但不能在页面的相册中看到,但是在用户的内容中。

P.S。我试图通过调用/ accounts来获取页面访问令牌 - 结果相同。 P.P.S.用户访问令牌具有manage_pages,photo_upload和其他权限(实际上除了offline_access之外的所有权限)

2 个答案:

答案 0 :(得分:2)

由于您似乎正在使用当前登录facebook用户的访问权限,因此您可能需要获得manage_pages扩展权限,然后一旦获得权限,您应该能够在粉丝页面墙上发布图像。

编辑:

此处的扩展权限文档https://developers.facebook.com/docs/authentication/permissions/#page_perms 这是一个可用的教程,显示如何使用扩展权限登录用户 http://thinkdiff.net/facebook/php-sdk-3-0-graph-api-base-facebook-connect-tutorial/

答案 1 :(得分:-1)

似乎有待解决。我真的需要使用页面访问令牌而不是用户,而且参数中不需要“'no_story'=&gt; 1”。