Facebook Graph API - 将远程图像发布到相册

时间:2012-07-24 04:13:46

标签: facebook-graph-api curl

目前我必须在服务器上下载图像并将其发布如下:

$photo = array(
    'message'  => 'Status',
    'source'   => '@/full/path/of/the/image.png'
);

$response = $fb->api('/'.$album.'/photos', 'POST', $photo);

我在后端使用curl发布此请求,它的工作就像一个魅力。 我想知道是否可以直接发布远程图像而不是下载本地副本?

我试着这样做:

$photo = array(
    'message'  => 'Status',
    'source'   => file_get_contents('http://www.domain.com/image.png')
);

$response = $fb->api('/'.$album.'/photos', 'POST', $photo);

但我从图API中得到一个例外:“(#324)需要上传文件”

当你没有发送在发送数据数组时自动设置的multipart / data标头时,会发生这种情况($data是一个数组)。

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

所以我怀疑发布远程图像是否可行。 你觉得怎么样?

1 个答案:

答案 0 :(得分:2)

只需在参数名称url下提供该照片的网址即可上传照片。

这个信息隐藏在description of the photo endpoint中,只是说,

  

“您还可以通过提供带有照片网址的网址参数来发布照片。”

因此,不要提供source参数,只需向url提供照片可公开访问的网址的值即可。 (除source之外的所有其他参数保持不变,并且仍然可以以相同的方式使用。)

我最近尝试了这个,它工作得很好。虽然,我只尝试使用来自我的应用领域的网址的照片 - 我不能说肯定如果它适用于网络上“任何地方”的网址(虽然我看不到为什么不应该这样做的一个很好的理由。