【问题标题】:Fetching photos and videos from a Facebook event using the Graph API使用 Graph API 从 Facebook 事件中获取照片和视频
【发布时间】:2016-10-28 15:42:36
【问题描述】:

我正在尝试使用 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 字段为我提供了高分辨率视频的图像 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 的参数吗?

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

【问题讨论】:

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


    【解决方案1】:

    "...我想知道是否可以进行一些 nested 调用 给我高分辨率视频的 URL..."

    解决方案

    要一次性进行所有 API 调用,您可以尝试使用 Graph API 批量请求

    查看文档和示例:Facebook API - Making Multiple Requests

    引用Docs

    " ...批处理允许您在一个 单个 HTTP 请求。您还可以指定相关之间的依赖关系 操作(在下面的部分中描述)。 Facebook 将处理每个 并行的独立操作,并将处理您的 依序运算。所有操作完成后 完成后,将向您和 HTTP 连接将被关闭。"

    如您所见,就是发出多个请求,并在它们之间建立依赖关系。
    因此,当您收到video_id 时,您可以在此处以您想要的分辨率请求视频。

    【讨论】:

    • 嗨@Rui,欢迎来到 StackOverflow。我希望你不介意编辑。只是让它成为一个更好的答案。我能想到的唯一小的改进是,如果您自己提供了可测试的示例代码,但实际上不需要,因为链接解释了所有内容。祝你好运。
    • 这是我倾向于的,但我不确定如何。如果有一个示例说明我如何将这些请求批处理在一起,那就太好了,这样第一个请求将返回第二个请求将调用的视频 ID,如果这有意义的话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    相关资源
    最近更新 更多