2012-08-02 114 views
1

我已经花了太多时间与现在战斗,已阅读所有我能找到的关于此问题但尚未回答,请帮助。Facebook应用可以在fanpage墙上发布消息,但不能上传图片

我试图使用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'),并真正张贴照片到用户墙(当我更改$ this->设置['fanpage_id'] $ user_id),但没有照片到页面墙。

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

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

回答

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/

+0

我必须给应用程序的manage_pages,对吧?你能用几句话告诉我如何检查以及如何实际授予这些权利?我不确定。 – Andrey 2012-08-02 15:33:06

+0

是的,我也更新了我的答案,并为您添加了一些参考。检查出来,看看是否有帮助。 – 2012-08-02 15:41:03

+0

manage_pages和“照片”更改“feed”是我的关键。谢谢。 – dlopezgonzalez 2014-02-06 15:44:46

-1

似乎得到解决。我真的需要使用页面访问令牌而不是用户,而且在参数中不需要“'no_story'=> 1”。

相关问题