我想知道如何使用Facebook Graph API向事件添加图片。我看过了这个问题,并尝试了一些变化,但都没有成功。官方文档似乎没有提到这个。
在这个特定项目中,我使用的是PHP,并查看了PHP SDK源代码,但没有任何帮助。使用https://graph.facebook.com/eventid/picture?metadata=1&access_token请求图片的元数据似乎不被识别,因此也没有帮助。
有没有人遇到过有关如何做到这一点的示例或文档?(无论使用哪种语言)
我想知道如何使用Facebook Graph API向事件添加图片。我看过了这个问题,并尝试了一些变化,但都没有成功。官方文档似乎没有提到这个。
在这个特定项目中,我使用的是PHP,并查看了PHP SDK源代码,但没有任何帮助。使用https://graph.facebook.com/eventid/picture?metadata=1&access_token请求图片的元数据似乎不被识别,因此也没有帮助。
有没有人遇到过有关如何做到这一点的示例或文档?(无论使用哪种语言)
虽然这是由Graph API支持的,但其文档质量较差。您需要将图像作为multipart附件发送在POST请求中。试试这个:
curl -F 'access_token=...' \
-F 'name=Test Event' \
-F 'description=The description' \
-F 'start_time=2012-09-01T12:00:00+0000' \
-F '@file.jpg=@/path/to/image.jpg' \
https://graph.facebook.com/me/events
那个事件应该有一张图片。
我已经fork了他们的python-sdk并添加了multipart支持,同时还添加了一个简单的put_event方法,它接受一个图片的url,以及通常的参数。
http://wiki.developers.facebook.com/index.php/PHP
http://wiki.developers.facebook.com/index.php/Photos.upload
http://developers.facebook.com/docs/reference/rest/
在上一个链接中,检查“发布方法”和“仪表板API方法”。它们有用于视频和照片上传的方法。我曾经遇到过同样的问题,这段代码对我很有效:
// create the event
// ...
// upload the picture
$file = "pathtothefile";
$args[basename($file)] = '@' . realpath($file);
$data = $facebook->api('/'. $event_id, 'post', $args);
但有时我会遇到“(#324) 缺少或无效的图像文件”错误
这是一个使用FbGraph编写的示例,由Nov Matake在Ruby on Rails中编写。我花了很多时间来弄清楚如何为事件上传图片。我希望这可以帮助并节省其他人的时间。
me = FbGraph::User.me(ACCESS_TOKEN)
event = me.event!(
:name => 'FbGraph test event',
:start_time => 1.week.from_now.to_i,
:end_time => 2.week.from_now.to_i,
:picture => File.new("/home/jeetu/Desktop/my_birthday.png")
)
看起来这是Graph API尚未支持的功能。官方文档中没有提到,试图将旧式API调用转换为Graph API也似乎不起作用。
关于这个问题,论坛上有一些人尝试过的讨论: http://forum.developers.facebook.com/viewtopic.php?id=56717
目前,似乎唯一的选择是使用旧的API(官方文档)。Paarth的答案提供了一些额外有用的链接,可以帮助你入门。然而,由于我的问题特别涉及到Graph API,所以答案(目前)是:无法完成。
如果支持事件图片上传到Graph API,我会更新这个答案。