Хобрук: Ваш путь к мастерству в программировании

Как вернуть видео из альбома карусели в Instagram?

Я делаю запросы к Instagram API, чтобы получать сообщения в ленте пользователей.

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

Похоже, что проходит 3 типа; IMAGE, VIDEO и CAROUSEL_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`

Эти запросы выполняются в цикле из массива идентификаторов сообщений. Мне нужно сделать дополнительные настройки?

Типичный 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"
}

Спасибо



Ответы:


1

Хотя не похоже, что этот 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}`)

В детском ключе ответа JSON вы увидите свои видео. Просто используйте его для отображения в качестве основного медиа, если хотите.

Попробуйте Graph API Explorer, чтобы узнать, какие поля вам доступны. Я не могу понять, как вернуть ширину и высоту, хотя, если кто-нибудь знает, как это сделать.

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

12.07.2019
Новые материалы

7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

Базовое руководство по переносу концепций обучения в глубокое обучение
Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

C в C.R.U.D с использованием React-Redux
Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

5 обязательных элементов современного инструмента конвейера данных
В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..

Случай использования npm3 вместо npm2 для разработки библиотеки
Некоторое время назад я создал библиотеку на NodeJS, чтобы упростить рендеринг на стороне сервера и клиента. Он использует React и React Router для отображения соответствующего HTML на веб-сайте...

Локаджит, спасибо, что поделились этой точкой зрения.
Локаджит, спасибо, что поделились этой точкой зрения. «Вы становитесь сильными, поднимая других, а не опуская их». Мы все можем извлечь уроки из этой цитаты.

Как простая библиотека может повысить производительность вашего приложения React
Знакомство с Million.js Виртуальный DOM React не такой быстрый. Но мы не можем обойти это. Если мы хотим React, нам нужно его придерживаться, верно? Нет, есть альтернатива. Million —..