使用图谱API

时间:2016-06-26 15:39:35

标签: facebook api facebook-graph-api video facebook-events

我正在尝试使用Facebook Graph API从Facebook活动中获取所有照片和视频。

目前我正在使用/{event-id}/feed端点,此处描述https://developers.facebook.com/docs/graph-api/reference/v2.6/event/feed

通过指定我想要的字段,我可以从此端点获得几乎我需要的一切,但是我无法以全分辨率获取视频的URL。我可以通过另一个API调用轻松获取它们,但我希望尽可能避免为所有视频进行另一个API调用。

请注意/{event-id}/feed端点返回Post objects数组,这是我使用fields查询参数查询的数据。

https://developers.facebook.com/docs/graph-api/reference/v2.6/post

这是我在调用/{event-id}/feed端点

时指定的字段
https://graph.facebook.com/v2.6/{event-id}/feed?fields=attachments,id,created_time,caption,from,name,message,message_tags,source,type,status_type,properties,object_id,picture&access_token={access-token}

attachments字段为我提供高分辨率视频的图片网址和视频本身的ID。这意味着我需要进行额外的API调用才能使用/{video-id}端点以高分辨率获取视频网址。

"attachments": {
        "data": [
           {
              "media": {
                 "image": {
                    "height": 405,
                    "src": "https://scontent.xx.fbcdn.net/v/t15.0-10/s720x720/13433040_10154318390596912_1315696369_n.jpg?oh=46987fa671df2deca3ce935a68e1ff30&oe=58008D60",
                    "width": 720
                 }
              },
              "target": {
                 "id": "10154318389716912",
                 "url": "https://www.facebook.com/{username-removed}/videos/10154318389716912/"
              },
              "type": "video_autoplay",
              "url": "https://www.facebook.com/{username-removed}/videos/10154318389716912/"
           }
        ]
     }

source字段为我提供了低分辨率视频的链接。

"source": "https://video.xx.fbcdn.net/v/t42.1790-2/13543016_152852391800500_1248221173_n.mp4?efg=eyJybHIiOjMxMywicmxhIjo1MTIsInZlbmNvZGVfdGFnIjoic3ZlX3NkIn0\u00253D&rl=313&vabr=174&oh=f0f42856741b81030ea529fe89f80834&oe=5771B45B"

object_id字段为我提供了视频ID。

properties字段为我提供了视频的长度。

所以我运气不好。我想知道是否可以进行一些嵌套调用,这将给我高分辨率视频的URL,或者我是否可以使用返回302重定向到视频的视频ID调用某个端点。我可以修改源URL的参数吗?

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

  

...我想知道是否可以进行一些嵌套调用   给我高分辨率视频的网址......

解决方案

要同时进行所需的所有API调用,您可以使用Graph API尝试批量请求

参见文档&示例:Facebook API - Making Multiple Requests

来自Docs

的引用
  

...批处理允许您传递一些操作的指令   单个HTTP请求。您还可以指定相关之间的依赖关系   操作(在下面的部分中描述)。 Facebook将处理每个   您的独立运营并行处理您的   顺序依赖的操作。一旦完成所有操作   完成后,综合回复将传回给您和   HTTP连接将被关闭。

正如您所看到的,它是在多个请求之间创建依赖关系 因此,当您获得video_id时,您可以在您想要的分辨率中请求视频。