我已经花了太多时间与此斗争,已经阅读了我在这个问题上找到的所有内容但尚无答案,请帮忙。
我正在尝试使用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之外的所有权限)
答案 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”。