我正试图使用php-sdk发布一张照片——所有这些都成功地工作了几个月,但突然之间就没有了。
其他功能仍在使用相同的代码库(即:在墙上张贴消息)——只是张贴在我身边的照片。
try {
$data = $facebook->api('/me/photos', 'post', $args);
} catch (FacebookApiException $e) {
print_r($e);}
正在转储:
FacebookApiException对象([result:protect]=>Array([error_code]=>3[error]=>Array)([message]=>未设置URL![type]=>CurlException))[message:protect]=>未设置任何URL![string:private]=>[code:protected]=>3[file:protected]=>/locationofmy/base_facebook.php[line:protect]=>818[trace:privated]=>数组([0]=>数组[…………..]
从FB-php-sdk行818:
if ($result === false) {
$e = new FacebookApiException(array(
'error_code' => curl_errno($ch),
'error' => array(
'message' => curl_error($ch),
'type' => 'CurlException',
),
));
curl_close($ch);
throw $e;
}
curl_close($ch);
return $result;
}
这已经持续了很长一段时间了——Facebooks方面有什么变化吗?
编辑:php-sdk版本:3.1.1
编辑2:
$tag = array(
'tag_uid' => 'acct_num',
'x' => 0,
'y' => 0
);
$tags[] = $tag;
$args = array(
'message' => $item_description,
'image' => '@' . realpath($temp_path . $tempFile),
'tags' => $tags,
);
可能是文件不存在,或者文件系统无法再为其提供服务。你能确认"$temp_path.$tempFile"吗?错误是没有URL,通常意味着没有图像的真实路径。我怀疑,图像丢失和/或您的服务器已满,并且没有保存本地图像。(是的,我以前也遇到过这种情况!)
尝试将image
更改为source
。我相信这会解决你的问题。
Facebook API需要一个source
字段,但我没有看到任何关于image
字段的信息。
您可能还必须传递实际的文件内容,而不是real_path(基于示例)。或者,也可以传递一个外部URL(基于我对文档的理解)。
来源:https://developers.facebook.com/docs/reference/api/photo/
示例:https://developers.facebook.com/blog/post/498/