可能重复:
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)。
答案 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.jpg
为http%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以外的语言):
<强>更新强>
目前还不是很清楚你希望在哪里发布照片用户专辑或应用专辑(title
和body
的问题与此相反)。如果您要将其发布到用户的相册,则需要将me
替换为要将照片上传到的相册id
。否则,请使用me
(针对当前用户)或其他用户id
(这将需要使用application access_token
)。
答案 1 :(得分:1)
本教程正是如此:
https://developers.facebook.com/blog/post/498/
您可以选择要将图片上传到的相册。
如果您想以更通用的方式进行此操作,Facebook API会告诉您向带有source
和message
参数的ALBUM_ID /照片发出POST请求。请注意,source
必须是multipart / form-data类型。
答案 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/