关于php:如何使用Facebook Graph API上传活动图片?

How to upload a picture for an event using the Facebook Graph API?

我想知道如何使用Facebook Graph API向事件添加图片。 我已经看到了这个问题,并对该主题进行了一些尝试,但没有成功。 官方文档似乎没有提及它。

我正在为该特定项目使用PHP,并且查看了PHP SDK源代码,无论如何它都无济于事。 使用https://graph.facebook.com/eventid/picture?metadata = 1&access_token ...请求图片的元数据似乎无法识别,因此也无济于事。

有没有人遇到过有关如何执行此操作的示例或文档? (不在乎它是哪种语言)


Graph API支持此功能,但文献记录不多。您需要在POST请求中将图像作为多部分附件发送。试试这个:

1
2
3
4
5
6
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

那件事应该有照片。

他们最近在PHP SDK中添加了对此的支持。

我分叉了他们的python-sdk并添加了多部分支持,并添加了一个简单的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方法"。它具有用于视频和照片上传的方法。

图片:http://developers.facebook.com/docs/reference/rest/photos.upload

视频:http://developers.facebook.com/docs/reference/rest/video.upload

--------------编辑--2010年5月21日,晚上8:58 IST ---------------------

将此线程检出,它使用您提到的图形API在PHP中显示照片上层代码。

使用Facebooks Graph API将照片上传到相册

我希望这有帮助。

谢谢。


我遇到了同样的问题,此代码对我有用:

1
2
3
4
5
6
7
// create the event
// ...

// upload the picture
$file ="pathtothefile";
$args[basename($file)] = '@' . realpath($file);
$data = $facebook->api('/'. $event_id, 'post', $args);

但是有时我会收到"(#324)缺少或无效的图像文件"错误


这是使用由Nov Matake在Ruby on Rails中编写的FbGraph的示例示例。我花了很多时间弄清楚如何为活动上传图片。我希望这会有所帮助并节省其他人的时间。

1
2
3
4
5
6
7
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尚不支持的东西。官方文档中未提及它,并且尝试Graph-ify旧样式API调用似乎无效。

关于各种人在此论坛上尝试过的内容已有一些讨论:
http://forum.developers.facebook.com/viewtopic.php?id=56717

目前,似乎唯一的选择是使用旧的API(官方文档)。 Paarth的答案提供了一些其他有用的链接来开始使用。但是,由于我的问题是关于Graph API的,所以答案(目前)是:无法完成。

我将更新此答案,因为对事件图片上传的支持已添加到Graph API。