Важные обновления с момента написания этого руководства:
-
Теперь требуется проверка приложения. С сентября 2021 года Meta требует, чтобы ваше приложение прошло проверку приложения и было одобрено для разрешения oEmbed Read (теперь называемого Meta oEmbed Read для приложений, созданных после 8 апреля 2025 года). Без этого вызовы API oEmbed не будут работать. См. руководство Meta по подаче заявки на проверку приложения для советов по получению одобрения.
-
Onebox для Instagram может отображаться некорректно. По состоянию на 3 ноября 2025 года Meta удалила поля
thumbnail_url,thumbnail_width,thumbnail_heightиauthor_nameиз ответов Instagram oEmbed. Код onebox для Instagram в Discourse в настоящее время зависит от этих полей (lib/onebox/engine/instagram_onebox.rb), что может привести к неработающим или пустым вставкам. -
Поддерживаются только URL-адреса постов и IGTV. В настоящее время Discourse поддерживает создание onebox только для URL-адресов Instagram
/p/(пост) и/tv/(IGTV). URL-адреса Reels (/reel/) не поддерживаются. -
Интерфейс консоли разработчика Facebook значительно изменился с момента создания скриншотов ниже в декабре 2020 года. Общие шаги остаются похожими, но точные экраны и параметры могут выглядеть иначе.
Если у вас уже есть приложение Facebook, связанное с вашим сайтом Discourse, прокрутите страницу вниз до раздела Добавление oEmbed в ваше приложение Facebook.
Если у вас нет учетной записи разработчика Facebook и приложения Facebook:
Перейдите на https://developers.facebook.com/. Если вы не вошли в систему, вам будет предложено войти в свою учетную запись Facebook. Вас могут попросить «преобразовать» вашу учетную запись Facebook в учетную запись разработчика, если вы этого еще не сделали. Вас могут попросить подтвердить свою учетную запись Facebook, добавив номер телефона или выполнив другие действия. Вам нужно просто следовать инструкциям и делать то, что требует Facebook.
После создания учетной записи разработчика Facebook нажмите «Мои приложения» на домашней странице разработчика Facebook:
…и «Создать приложение»:
Выберите тип приложения «Что-то другое» и нажмите «Продолжить»:
Введите «Отображаемое имя приложения» и «Контактный email приложения». После прочтения их Условий использования и Политики конфиденциальности вы можете нажать «Создать приложение»:
Если вы робот: здесь нечего смотреть. Бип боп буп. ![]()
Если вы не робот: нажмите «Я не робот», следуйте инструкциям и нажмите «Отправить».
Поздравляем! У вас есть приложение Facebook!
Добавление oEmbed в ваше приложение Facebook:
Прокрутите список продуктов вниз, найдите «oEmbed» и нажмите «Настроить»:
Если вы согласны с тем, как вы будете использовать продукт oEmbed, установите флажок, а затем нажмите «Подтвердить»:
Продукт oEmbed добавлен. Нажмите «Настройки»:
«Отображаемое имя» и «Контактный email» уже должны быть заполнены. Вам нужно будет ввести URL-адреса для вашей «Политики конфиденциальности» и «Условий использования». Выберите «Категорию» из списка доступных параметров. Нажмите «Сохранить изменения», когда будете довольны всем:
Переключите переключатель в верхней части экрана, чтобы изменить режим с «В разработке» на «В эфире»:
Нажмите «Переключить режим»:
Отправьте свое приложение на проверку (требуется с 2021 года):
Прежде чем ваше приложение сможет получить доступ к API oEmbed в рабочей среде, вы должны отправить его на проверку приложения и запросить разрешение oEmbed Read (или Meta oEmbed Read для приложений, созданных после 8 апреля 2025 года).
- В панели управления вашим приложением перейдите в раздел Проверка приложения → Разрешения и функции.
- Найдите oEmbed Read (или Meta oEmbed Read) и нажмите Запросить.
- Возможно, вам сначала нужно будет выполнить успешный тестовый вызов API, прежде чем кнопка запроса станет активной. Это может занять до 24 часов после вашего первого вызова API.
- При отправке укажите URL-адрес на вашем сайте Discourse, содержащий вставку Instagram, и объясните, что ваш сайт использует программное обеспечение форума Discourse для вставки постов Instagram с помощью API oEmbed.
См. документацию Meta по oEmbed для подробных инструкций по подаче заявки.
Сгенерируйте токен доступа вашего приложения:
Сделав все это, мы можем сгенерировать токен приложения, следуя инструкциям Facebook по токенам доступа приложения. Вам понадобятся значения полей «ID приложения» и «Секрет приложения». Чтобы получить секрет приложения, нажмите «Показать». Вас могут попросить повторно пройти аутентификацию или выполнить аналогичные действия, но в итоге вы получите длинное шестнадцатеричное значение, которое можно скопировать:
Согласно документации Facebook, вам нужно отправить эти значения в Facebook для генерации токена. Вы знакомы с использованием curl? Отлично! Они предлагают следующее (замените {your-app-id} и {your-app-secret} на значения, скопированные с экрана выше).
curl -X GET "https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials"
Альтернативно, копирование только URL-адреса (после замены этих двух значений) в ваш браузер также должно сработать:
https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials
Facebook ответит небольшим фрагментом JSON, который должен выглядеть примерно так:
{"access_token":"1234567890654321|c3bd55c09fc5e561552ad7a8717","token_type":"bearer"}
Скопируйте значение вашего access_token, исключив кавычки (т. е. в моем примере это было бы 1234567890654321|c3bd55c09fc5e561552ad7a8717), и перейдите к настройкам вашего сайта Discourse. Найдите настройку сайта с именем facebook_app_access_token в настройках Onebox. Вставьте значение access_token в это поле:
Нажмите
…и готово!
Вставка URL-адреса, такого как https://www.instagram.com/p/CIRhYzFM7Lu/, в сообщение на вашем сайте должна привести к появлению красивого onebox, точно так же, как этот:

























