如何从 Instagram 媒体轮播相册返回视频?

Mic*_*umo 1 javascript instagram instagram-api instagram-graph-api

我正在向 Instagram API 发出请求以获取用户源上的帖子。

https://developers.facebook.com/docs/instagram-api/reference/media/#returnable-fields

似乎有 3 种类型出现;IMAGEVIDEOCAROUSEL_ALBUM

IMAGE类型中,media_url对象中的键是图像的链接。

在该VIDEO类型中,media_url对象中的键是 mp4 视频的链接,并且它还有一个称为thumbnail_url视频静态图像的附加键。

然而,CAROUSEL_ALBUM只有一个media_url键(如IMAGE)并且它只是一个图像,即使我知道轮播包含 mp4 视频。

如何获取CAROUSEL_ALBUM从 Instagram 返回的类型的视频?

我请求以下字段:

`https://graph.facebook.com/v3.3/${item.id}?access_token=${accessToken}&fields=id,media_type,media_url,thumbnail_url,permalink,caption,timestamp`
Run Code Online (Sandbox Code Playgroud)

这些请求是从帖子 ID 数组中循环发出的。我还需要进行其他设置吗?

我收到的典型CAROUSEL_ALBUM请求如下:

{
  "media_type": "CAROUSEL_ALBUM",
  "media_url": "https://scontent.xx.fbcdn.net/v/t51.2885-15/66441408_2082905628680299_8050667243209299756_n.jpg?_nc_cat=100&_nc_oc=AQk2PElxoGzOzQ_4f-4vANh_Db1Mmra2wkci2aEKbc3vCstLzQeWQxKadbe1ByF8Vec&_nc_ht=scontent.xx&oh=5aa8ac107e1bd5da07b6cb5d760200f6&oe=5DC18C62",
  "permalink": "https://www.instagram.com/p/Bzif-HhAiBk/",
  "caption": "Each video in this carousel stands for a stage in the animation process for our latest experiment, where we animated a 3d model and used it as a basis for the 2d rotoscoping.",
  "timestamp": "2019-07-05T14:50:53+0000",
  "id": "18053365636184706"
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Mic*_*umo 8

虽然这个 API 似乎没有在轮播类型的顶层返回视频,但我确实为可能需要它的任何人找到了解决方法。

在旋转木马类型中,应该有一把儿童钥匙。所以你需要在字段的参数中请求它。

使用此子字段中的子字段,您可以获得实际的媒体项目(视频)。

例如:

const fields = [
  'caption',
  'children{media_type,media_url,thumbnail_url}',
  'id',
  'media_type',
  'media_url',
  'permalink',
  'thumbnail_url',
  'timestamp'
].join(',')

const request = await fetch(`https://graph.facebook.com/v3.3/${userId}/media?fields=${fields}&access_token=${accessToken}`)
Run Code Online (Sandbox Code Playgroud)

在 JSON 响应的子键中,您将看到您的视频。如果您愿意,只需使用它作为您的主要媒体显示即可。

尝试使用 Graph API Explorer 查看哪些字段可供您使用。我无法弄清楚如何返回宽度和高度,但如果有人知道如何做到这一点。

https://developers.facebook.com/tools/explorer