我一直在使用PHP SDK尝试将照片发布到Facebook上的测试用户活动中:
$c = 0;
$facebook->setFileUploadSupport(true);
while ($c < count($_FILES['file']['name'])) {
aFile = $_FILES['file'];
//..other code for ui and validity checks..//
$real = realpath($aFile["tmp_name"][$c]);
$attachment = array('message' => 'Test upload');
$attachment['image'] = '@'.$real; //also tried other keys. Please see below...
try {
$result = $facebook->api('/'.$event_id.'/photos?access_token='.$access_token, 'post', $attachment);
}
catch (FacebookApiException $e) {
echo('Could not post image to Facebook:'.var_export($e));
}
$c++;
}
不幸的是,我得到的只是错误:
'message' => 'An unexpected error has occurred. Please retry your request later.', 'type' => 'OAuthException', 'code' => 2
我已经尝试了两天,这是我唯一的上传代码所以我很难超载Facebook(在我的情况下)尝试每隔一段时间发送一个500x500的jpg文件。
如果我将../photos?access_token=…
更改为../feed?access_token=..
,则会发布文字但不会发布图片。
我也试过用以下方法处理图像:
$attachment[basename($real)] = '@'.$real;
和
$attachment['source'] = '@'.$real;
和
$attachment['picture'] = '@'.$real;
所有本地文件都没有成功。但$attachment
上的最后一个关键选项将允许在(随机)网站上显示带有图片网址的帖子。
有人可以告诉我,我是否'正在发布到正确的开放图形边缘,或者我的代码中是否存在处理图像数据的错误?
答案 0 :(得分:0)
我认为问题是测试用户帐户被破坏或者旧的以及我的文件路径的混合。
我删除了测试用户并完全重新创建了新用户,并且在我知道可以使用facebook命令的地方放置了一个虚拟文件:
$photo_return = $facebook->api($event_id.'/photos', 'POST', array('source' => '@dummy_file.jpg', 'message' => 'Photo post'));