我已经花了太多时间来解决这个问题,已经阅读了我能找到的关于这个问题的所有内容,但还没有答案,请帮忙。
我正在尝试使用 facebook 应用程序和 Graph 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";
}
这段代码确实向页面墙发布了一条消息(当我将 '/photos' 替换为 '/feed' 时),并且真正将照片发布到 USER 墙上(当我将 $this->settings['fanpage_id'] 更改为 $ user_id) 但不是页面墙的照片。
它确实上传了图片:$result 包含上传图片的 id,我可以在 facebook 上看到它,但不是在页面的相册中,而是在用户的相册中。
PS 我试图通过调用 /accounts 来获取页面访问令牌 - 结果相同。PPS 用户访问令牌具有manage_pages、photo_upload 和其他权限(实际上除了offline_access)