【问题标题】:FB: Unable to post a photo to an album on a Facebook pageFB:无法将照片发布到 Facebook 页面上的相册
【发布时间】:2012-08-25 05:54:21
【问题描述】:

当尝试将照片发布到相册时(作为页面,使用了从“/page_id?fields=access_token”获得的页面访问令牌),我得到了新创建对象的 ID。然而,当试图在图形资源管理器中检查它时,这个 ID 只会返回“false”。此外,照片似乎没有出现在所选相册中(或其他任何地方)。

代码非常简单:

$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);

option::get_value () 只返回(正确的,我检查了三次)专辑 ID。此外,图像是 .png,我没有收到任何错误消息,Facebook 返回的所有内容都是 ID:

array(1) { ["id"]=> string(15) "188538791279108" }

这是 Facebook 的错误还是我遗漏了一些明显的东西?

【问题讨论】:

  • $args['image'] = '@' . realpath ($filename); 这仅返回规范化的绝对​​路径名。要将图像上传到 facebook,您必须传递带有域的完整路径。例如; http://somesite.com/images/myimage.png
  • 不幸的是,它确实是完整的物理路径,当我将其更改为虚假路径时,我已经从脚本中获得了 HTTP 500,因为它找不到文件。你确定我需要传递一个 URL 才能工作吗?
  • 是的。您必须将完整的 imageurl 作为源传递。

标签: facebook


【解决方案1】:

尝试使用“source”而不是“image”参数。刚刚尝试过,它对我有用(发布到页面拥有的相册):

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

另外,请确保上传的文件具有非零文件大小:

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

并使用Debugger 仔细检查访问令牌是否具有manage_pages,publish_stream 权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多