我正在尝试使用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
query参数查询的内容。
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
字段为我提供了高分辨率的视频图像URL和视频本身的ID。这意味着我需要进行其他API调用,只是为了使用/{video-id}
端点获得高分辨率的视频URL 。
"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,或者是否可以调用某些视频ID返回302重定向到视频的终结点。我可以修改源URL的参数吗?
任何帮助深表感谢。谢谢!
“ ...我想知道是否有可能进行嵌套调用以使我获得高分辨率视频的URL ... ”
解决方案:
要一次进行所有想要的API调用,可以尝试使用Graph API进行批处理请求。
请参阅以下文档和示例: Facebook API - Making Multiple Requests
引用文档:
“ ...批处理允许您在单个HTTP请求中传递有关多个操作的指令。您还可以指定相关操作之间的依赖关系(在下面的部分中介绍)。Facebook将并行处理每个独立的操作并处理您的依赖项。所有操作完成后,合并的响应将传递回给您,并且HTTP连接将关闭。”
如您所见,它是发出多个请求并在它们之间创建依赖关系。
因此,当您获得所需video_id
的分辨率时,就可以在那里请求视频。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句