Вставка публикации Instagram

Запрос к конечной точке oEmbed для Instagram позволяет получить HTML-код для вставки и базовые метаданные публикации Instagram для ее отображения на другом сайте или в приложении. Поддерживаются фото- и видеопубликации, видео Reels и публикации в Ленте.

Чтобы узнать, как получить код для вставки из общедоступной публикации или профиля в Instagram, посетите Справочный центр Instagram.

Распространенные варианты использования

  • Вставка публикации в блог
  • Вставка публикации на сайт
  • Представление публикации в системе управления контентом
  • Представление публикации в приложении для обмена сообщениями

Требования

Это руководство предназначено для зарегистрированных разработчиков Meta , у которых есть приложение Meta .

Вам понадобится перечисленные далее элементы.

Уровни доступа

Маркеры доступа

  • Маркер доступа приложения , если ваше приложение обращается к конечной точке oEmbed с внутреннего сервера.
  • Маркер доступа клиента , если ваше приложение обращается к конечной точке oEmbed через пользовательский агент, такой как мобильное устройство или веб-браузер.

Базовый URL

Доступ ко всем конечным точкам реализуется через хост graph.facebook.com.

Конечные точки

Функции

Ограничения

  • Конечная точка oEmbed для Instagram предназначена только для вставки контента Instagram на сайты и в приложения. Использовать ее в любых других целях запрещено. Строго запрещается использовать метаданные и контент страниц, публикаций или видео и их производные, полученные с помощью этой конечной точки, в любых целях, кроме отображения этих страниц, публикаций или видео в пользовательском интерфейсе. Этот запрет распространяется на потребление, изменение, извлечение и хранение метаданных и контента, включая получение из метаданных информации о страницах, публикациях и видео в целях анализа.
  • Публикации конфиденциальных и неактивных аккаунтов Instagram, а также аккаунтов с ограничением по возрасту не поддерживаются.
  • Аккаунты, которые отключили вставку, не поддерживаются.
  • Истории не поддерживаются.
  • Shadow DOM не поддерживается.

Ограничения числа обращений

Ограничения числа обращений зависят от типа маркера доступа, который приложение указывает в каждом запросе.

Ограничения числа обращений для маркера доступа приложения

Приложения, использующие маркер доступа приложения, могут выполнять до 5 миллионов запросов каждые 24 часа.

Ограничения числа обращений для маркера доступа клиента

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

Получение HTML-кода для вставки

HTML-код для вставки можно получить программным путем или в приложении Instagram .

Чтобы получить HTML-код для вставки публикации Instagram программным путем, отправьте такой запрос:

GET /instagram_oembed?url=<URL_OF_THE_POST>&access_token=<ACCESS_TOKEN>

Вместо <URL_OF_THE_POST> подставьте URL публикации Instagram, которую нужно запросить, а вместо <ACCESS_TOKEN> — маркер доступа своего приложения или клиента (или передайте его нам в HTTP-заголовке Authorization).

Authorization: Bearer <ACCESS_TOKEN>

Если вы используете маркер доступа клиента, не забудьте добавить к нему ID приложения Meta, отделив вертикальной чертой, иначе запрос завершится ошибкой.

В случае успеха API вернет объект JSON, содержащий HTML-код публикации для вставки, а также дополнительные данные. HTML-код для вставки содержится в свойстве html.

Список параметров, которые можно добавлять в строку запроса, см. в справке по конечной точке oEmbed для Instagram. Можно также добавить параметр fields, чтобы указать, какие поля вы хотите получить в ответе. Если его не задать, будут возвращены все поля по умолчанию.

Примеры запросов

curl -X GET \
  "https://graph.facebook.com/v21.0/instagram_oembed?url=https://www.instagram.com/p/fA9uwTtkSN/&access_token=IGQVJ..."

curl -i -X GET \
     --header "Authorization: Bearer 96481..." \
     "https://graph.facebook.com/v21.0/instagram_oembed?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FfA9uwTtkSN"

Пример ответа

Некоторые значения усечены (...) для удобства чтения.

{
  "version": "1.0",
  "author_name": "diegoquinteiro",
  "provider_name": "Instagram",
  "provider_url": "https://www.instagram.com/",
  "type": "rich",
  "width": 658,
  "html": "<blockquote class=\"instagram-media\" data-instgrm-ca...",
  "thumbnail_width": 640,
  "thumbnail_height": 640
}

Форматы URL

Параметр строки запроса url принимает URL в следующих форматах:

https://www.instagram.com/p/{media-shortcode}/
https://www.instagram.com/tv/{media-shortcode}/https://www.instagram.com/{username}/guide/{slug}/{guide_id}

Библиотека JavaScript для вставки

HTML-код для вставки содержит ссылку на библиотеку JavaScript embed.js для Instagram. При загрузке библиотека проверяет страницу на предмет HTML-кода публикации и генерирует полностью отображаемую публикацию. Чтобы загрузить библиотеку отдельно, добавьте в запрос параметр omitscript=true. Чтобы инициализировать HTML-код для вставки вручную, вызовите функцию instgrm.Embeds.process() после загрузки библиотеки.

Размер публикации

Встраиваемая публикация адаптируется под размер ее контейнера. Это означает, что высота публикации изменяется в зависимости от ширины контейнера и длины подписи. Чтобы указать максимальную ширину, добавьте в запрос параметр maxwidth.

Получение миниатюр

Рекомендуем по возможности представлять HTML-код для вставки публикации целиком. Если это не удается сделать, можно получить URL изображения миниатюры публикации и отображать ее. В этом случае необходимо указать информацию об авторских правах: имя автора, ссылку на исходную публикацию и на Instagram.

Чтобы получить URL миниатюры и информацию об авторских правах, отправьте такой запрос:

GET /instagram_oembed
  ?url=<URL_OF_THE_POST>
  &maxwidth=<MAX_WIDTH>
  &fields=thumbnail_url,author_name,provider_name,provider_url
  &access_token=<ACCESS_TOKEN>

Вместо <URL_OF_THE_POST> подставьте URL публикации Instagram, которую нужно запросить, вместо <MAX_WIDTH> — максимальный размер миниатюры для отображения, а вместо <ACCESS_TOKEN> — маркер доступа своего приложения или клиента.

Пример запроса

curl -i -X GET \
  "https://graph.facebook.com/v21.0/instagram_oembed?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FfA9uwTtkSN&maxwidth=320&fields=thumbnail_url%2Cauthor_name%2Cprovider_name%2Cprovider_url&access_token=96481..."

Пример ответа

Для удобства чтения некоторые значения обрезаны (...).

{
  "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.288...",
  "author_name": "diegoquinteiro",
  "provider_name": "Instagram",
  "provider_url": "https://www.instagram.com/"
}

Отправка приложения на проверку

При отправке приложения на проверку в поле формы Расскажите, почему вы запрашиваете функцию oEmbed Read > Предоставьте URL, по которому мы можем протестировать oEmbed Read используйте конечную точку Instagram oEmbed, чтобы получить HTML-код для вставки для какой-либо публичной публикации на нашей официальной Странице Facebook или на Странице Instagram. Затем добавьте возвращенный HTML-код для вставки туда, где будет отображаться контент oEmbed, и укажите URL этой страницы в поле формы.

Получив одобрение на использование функции oEmbed Read, вы сможете вставлять собственные страницы, публикации и видео с помощью соответствующих URL.