给定图像的URL,如何将该图像上传到Facebook用户的相册?

时间:2012-01-22 10:46:42

标签: image facebook-graph-api facebook

  

可能重复:
  Upload photo to users profile from photo URL, not input file field

我有access_token。这是publish_stream权限。

好的,现在我想在Facebook上将图片上传到我的默认应用专辑。该图像托管在我的S3.amazon.com上。 (但是出于示例目的,我们来看看这个链接:http://i.imgur.com/Ptyzk.jpg

如何将此imgur图像上传到我应用的相册? (Facebook上的文档很奇怪,我不懂PHP)。

3 个答案:

答案 0 :(得分:2)

要将照片上传到“应用相册”,您有两种方式(实际上首先可能会对您感兴趣)。

选项1: Uploading Photos to the Graph API via a URL

  

在Amazon S3或类似服务上托管其图像的应用程序开发人员可以将S3 URL直接传递到Facebook,而无需将文件下载到其应用程序服务器,只能将其再次上传到Facebook 。这可以提高性能并降低开发人员的成本。

要实现这一目标,您需要向下一个网址发出POST个请求(或GET参数method=post):

https://graph.facebook.com/me/photos?
       access_token=...&url=http%3A%2F%2Fi.imgur.com%2FPtyzk.jpg
url编码形式的

http://i.imgur.com/Ptyzk.jpghttp%3A%2F%2Fi.imgur.com%2FPtyzk.jpg(如果您使用URL参数传递它,则只需编码url,如果您使用post-data传递它,则不得编码)

photo object documentation所述,将照片发布到https://graph.facebook.com/USER_ID/photos

  

照片将发布到为您的应用创建的相册中。如果您的应用尚不存在,我们会自动为您创建相册。以这种方式上传的所有照片将被添加到同一张专辑中。

选项2:上传图片数据

您只需向POST发出http://graph.facebook.com/me/photos次请求(请参阅Create Photos section of user object documentation)。

唯一必需的参数是source multipart/form-data编码文件,您可以将其下载到临时文件并稍后上传,或者将其流式传输到Graph API(取决于您使用的技术)实现此功能)

有几个示例如何上传照片(使用PHP以外的语言):

<强>更新 目前还不是很清楚你希望在哪里发布照片用户专辑或应用专辑(titlebody的问题与此相反)。如果您要将其发布到用户的相册,则需要将me替换为要将照片上传到的相册id。否则,请使用me(针对当前用户)或其他用户id(这将需要使用application access_token)。

答案 1 :(得分:1)

本教程正是如此:

https://developers.facebook.com/blog/post/498/

您可以选择要将图片上传到的相册。

如果您想以更通用的方式进行此操作,Facebook API会告诉您向带有sourcemessage参数的ALBUM_ID /照片发出POST请求。请注意,source必须是multipart / form-data类型。

https://developers.facebook.com/docs/reference/api/album/

的更多详情

答案 2 :(得分:0)

如果您想将该照片上传到您应用的用户,我认为大多数答案都是正确的。但据我了解,您希望将其上传到您应用的连接相册。要做到这一点,你应该得到应用专辑的ID,而不是像你能够发布图像一样:

$facebook->api('album_id', 'POST', array(...

要获取相册的ID,请转到Graph API explorer并执行以下操作:/ your_app_id / albums(将your_app_id替换为您的实际应用ID)。这应该会为您提供有关您的应用相册的所有详细信息。比使用您首选的SDK(JS,PHP等)的Graph API POST请求,包含图片来源和标题(这是必须的)到上述地址的数组。

注意:相册应用程序连接已弃用,将于2012年3月1日删除。请阅读本文档末尾的详细信息http://developers.facebook.com/docs/reference/api/application/