2012-08-24 206 views
0

当试图将照片发布到相册时(作为页面,使用从“/ page_id?fields = access_token”获得的页面访问令牌)我得到新创建的对象的ID。但是,当试图在图形浏览器中检查它时,此ID仅返回“false”。此外,该照片似乎并未出现在所选专辑(或其他任何地方)中。FB:无法将照片发布到Facebook页面上的相册

的代码非常简单:

$facebook->setFileUploadSupport (true); 
$page_at = $facebook->api ('/'.option::get_value ('page_id').'?fields=access_token'); 
$page_at = $page_at['access_token']; 
$args = array(); 
$args['message'] = $this->text; 
$args['image'] = '@' . realpath ($filename); 
$args['access_token'] = $page_at; 
$photo = $facebook->api ('/'. option::get_value ('album_id') . '/photos', 'post', $args); 

选项::的get_value()只返回(正确的,我三重检查)相册ID。此外,所述图像是.PNG和我任何没有错误消息,一切的Facebook返回是ID:

阵列(1){[ “ID”] =>串(15) “188538791279108”}

这是一个Facebook错误还是我错过了明显的东西?

+0

'$ args ['image'] ='@'。 realpath($ filename);'这只返回规范化的绝对​​路径名。要将图片上传到脸书,您必须通过域名的完整路径。 'http:// somesite.com/images/myimage.png' –

+0

不幸的是,它确实是完整的物理路径,当我将它改为虚假路径时,我已经从我的脚本获取HTTP 500,因为它无法找到文件。你确定我需要传递一个URL来使其工作吗? –

+0

是的。你必须通过完整的imageurl来源。 –

回答

1

而不是'图像'参数,请尝试'源'。刚刚试了一下,它为我工作(发布到一个页面所拥有的专辑):

$args['source'] = '@'.realpath($filename); 

同时,确保上传的文件具有非零文件大小:

error_log('file size: '.$_FILES["file"]["size"]); 

和双使用Debugger检查访问令牌具有manage_pages,publish_stream权限。

+0

谢谢!出于某种原因,我忘记了publish_stream权限.. –