facebook - 使用 Graph API 从 Facebook 事件中获取照片和视频

标签 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 数组,这就是我使用 字段查询的内容 查询参数。

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,或者我是否可以使用返回 302 重定向到视频的视频 ID 调用某个端点。我可以修改源 URL 的参数吗?

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

最佳答案

"...I'm wondering if it's possible to make some nested call that would give me the URL of the high resolution video..."

解决方案:

要一次调用所有您想要的 API,您可以尝试使用图形 API 进行批量请求

请参阅文档和示例:Facebook API - Making Multiple Requests

引自Docs :

" ... Batching allows you to pass instructions for several operations in a single HTTP request. You can also specify dependencies between related operations (described in a section below). Facebook will process each of your independent operations in parallel and will process your dependent operations sequentially. Once all operations have been completed, a consolidated response will be passed back to you and the HTTP connection will be closed."

可以看到,就是发起多个请求,并在它们之间建立依赖关系。
因此,当您获得 video_id 时,您可以立即以您想要的分辨率请求视频。

关于facebook - 使用 Graph API 从 Facebook 事件中获取照片和视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38040186/

相关文章:

facebook - 如何为子域配置 Facebook 应用程序

facebook - 如何安排发帖时间

javascript - Facebook 如何禁用浏览器的集成开发者工具?

swift - 如何将两个参数传递给webservice

c++ - GetDlgItemText 返回错误 1421

php - Laravel API 的创建和编辑方法应该返回什么?

Python Facebook API - 洞察/参与数据?

facebook - 如何从Facebook bot移除 “Get Started”按钮

javascript - 使用 JavaScript SDK 发布到 Facebook 页面时出现授权问题

javascript - 在没有请求访问 token 的情况下检查用户是否喜欢 Facebook 页面