Конечную точку oEmbed для Instagram можно запросить, чтобы получить HTML-код для встраивания и базовые метаданные публикации Instagram для ее отображения на другом сайте или в приложении. Поддерживаются фото- и видеопубликации, видео Reels и путеводители.
Конечная точка | Описание |
---|---|
Получение базовых метаданных и HTML-кода для встраивания публикации Instagram. |
Чтобы использовать oEmbed, ваше приложение должно пройти проверку для функции oEmbed Read.
Для поля формы URL для тестирования oEmbed Read укажите конечную точку oEmbed для Instagram, чтобы получить HTML-код встраивания для любой общедоступной публикации на нашей официальной Странице Facebook или странице Instagram (или получите HTML-код для встраивания на любой из этих страниц). Добавьте полученный HTML-код встраивания на собственную страницу, где будет отображаться контент oEmbed, и введите URL этой страницы в поле формы.
Получив одобрение на использование функции oEmbed Read, вы сможете встраивать собственные страницы, публикации и видео с помощью соответствующих URL.
Для конечной точки oEmbed для Instagram требуется маркер доступа приложения (рекомендуется) или маркер доступа клиента.
Если ваше приложение работает на сервере, для доступа к конечной точке oEmbed рекомендуется использовать маркер доступа приложения. Ограничения числа обращений зависят от типа маркера доступа, указанного в запросе. Ограничение для маркера доступа приложения составляет 5 миллионов запросов в день.
Инструкции по генерации маркера доступа приложения можно найти здесь.
Обратите внимание: маркеры доступа приложения не следует использовать на стороне клиента. Они должны храниться в безопасности на вашем сервере. Если вашему приложению необходим маркер доступа на стороне клиента, используйте маркер доступа клиента.
Если вашему приложению нужно обращаться к конечной точке oEmbed из пользовательского агента, например с мобильного устройства или из браузера, используйте маркер доступа клиента. В таком случае для него будут действовать соответствующие ограничения числа обращений.
Чтобы получить маркер доступа клиента, войдите в панель приложений и перейдите в раздел Настройки > Расширенные > Безопасность > Маркер клиента.
В отличие от маркеров доступа приложения, маркеры доступа клиента нельзя использовать в запросах к конечной точке oEmbed самостоятельно: к ним всегда нужно добавлять ID вашего приложения. Для этого добавьте маркер доступа в конце ID приложения, отделив его вертикальной чертой (|
):
{app-id}|{client-token}
Пример:
access_token=1234|5678
Ограничения числа обращений зависят от типа маркера доступа, который приложение указывает в каждом запросе.
Приложения, использующие маркер доступа приложения, могут выполнять до 5 миллионов запросов каждые 24 часа.
Ограничения числа обращений для маркера клиента значительно ниже ограничений для маркера приложения. Указать точное ограничение невозможно, так как оно изменяется в зависимости от активности приложения. В большинстве случаев ваше приложение не достигнет ограничения, если оно не ведет себя как бот (в частности, не отправляет тысячи запросов в одном пакете или тысячи запросов на каждый агент либо каждого пользователя).
Чтобы получить HTML-код для встраивания публикации Instagram, отправьте такой запрос:
GET /instagram_oembed?url={url}&access_token={access-token}
Замените {url}
на URL публикации Instagram, которую вы хотите запросить, а {access-token}
— на маркер доступа приложения или клиента (или передайте его нам в заголовке HTTP). Если вы используете маркер доступа клиента, не забудьте добавить к нему ID приложения, отделив вертикальной чертой.
В случае успеха API вернет объект JSON, содержащий HTML-код публикации для встраивания, а также дополнительные данные. HTML-код встраивания содержится в свойстве html
.
Список параметров, которые можно включать в строку запроса, см. в справке по конечной точке oEmbed для Instagram. Можно также добавить параметр fields
, чтобы указать, какие поля вы хотите получить в ответе. Если его не задать, будут возвращены все поля по умолчанию.
curl -X GET \
"https://graph.facebook.com/v20.0
/instagram_oembed?url=https://www.instagram.com/p/fA9uwTtkSN/&access_token=IGQVJ..."
Некоторые значения усечены (...
) для удобства чтения.
{ "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 в следующих форматах:
https://www.instagram.com/p/{media-shortcode}/
https://www.instagram.com/tv/{media-shortcode}/
https://www.instagram.com/{username}/guide/{slug}/{guide_id}
HTML-код для встраивания содержит ссылку на библиотеку JavaScript embed.js для Instagram. При загрузке библиотека проверяет страницу на предмет HTML-кода публикации и генерирует полностью отображаемую публикацию. Чтобы загрузить библиотеку отдельно, добавьте в запрос параметр omitscript=true
. Чтобы инициализировать HTML-код встраивания вручную, вызовите функцию instgrm.Embeds.process()
после загрузки библиотеки.
Встраиваемая публикация адаптируется под размер ее контейнера. Это означает, что высота публикации изменяется в зависимости от ширины контейнера и длины подписи. Чтобы указать максимальную ширину, добавьте в запрос параметр maxwidth
.
Рекомендуем по возможности отображать HTML-код публикации целиком. Если это не удается сделать, можно получить URL изображения миниатюры публикации и отображать ее. В этом случае необходимо указать информацию об авторских правах: имя автора, ссылку на исходную публикацию и на Instagram.
Чтобы получить URL миниатюры и информацию об авторских правах, отправьте такой запрос:
GET /instagram_oembed ?url={url} &maxwidth={maxwidth} &fields=thumbnail_url,author_name,provider_name,provider_url &access_token={access-token}
Замените {url}
на URL публикации Instagram, которую вы хотите запросить, {maxwidth}
— на максимальный размер миниатюры для отображения, а {access-token}
— на маркер доступа приложения или клиента.
curl -i -X GET \
"https://graph.facebook.com/v20.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/" }
Если вы не хотите указывать маркер доступа в строке запроса, его можно передать в HTTP-заголовке Authorization
.
Authorization: Bearer {access-token}
Пример:
curl -i -X GET \
"https://graph.facebook.com/v20.0
/instagram_oembed?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FfA9uwTtkSN" \
--header "Authorization: Bearer 96481..."