Папа Ботов
March 27, 2019

Боты для Instagram. Обзор.

Всем привет, на связи Вадим Львов, поговорим сегодня о создании бота для Instagram.

Для создания бота нужно выбрать программный интерфейс одной из двух платформ в зависимости от того, какой у Вас профиль Instagram. Если у Вас бизнес профиль, то Вы можете использовать Facebook Graph API для Instagram. Если же у Вас обычный профиль, не связанный с компанией, то нужно будет воспользоваться API платформы Instagram.

По использованию Facebook Graph API для Instagram есть одно существенное замечание: Ваша компания должна быть подтверждена. Это чаcть процесса проверки приложений и необходимое условие для всех конечных точек Facebook Graph API для Instagram.

Рассмотрим сначала Facebook Graph API для Instagram. Graph API можно использовать, если у Вас бизнес профиль Instagram, который привязан к странице Facebook, к которой Вы имеете административный доступ. При помощи Graph API Вы можете получить доступ к своему аккаунту Instagram Business, чтобы управлять медиаобъектами, просматривать комментарии и метаданные, статистику и метрики в Вашем приложении.

Доступ к Graph API осуществляется по адресу graph.facebook.com. Кроме того:

  1. для доступа необходим маркер доступа пользователя с необходимыми разрешениями,
  2. на операции распространяется ограничение количества обращений.

Вызов Graph API.

Для того, чтобы обратиться к Graph API необходимо вызвать конечную точку (endpoint) и возможно передать поля, которые необходимо вернуть. Большинство конечных точек - это ID объектов, которые могут возвращать данные о соответствующих объектах. Например, ниже представлен вызов конечной точки (в условном виде), позволяющий получить свойства caption (заголовок) и media_type (тип media объекта) конкретного изображения по его ID (17895695668004550)

GET graph.facebook.com/17895695668004550?fields=caption,media_type

Возвращаемые значения:

{
  "caption": "Desk move day!",
  "media_type": "IMAGE",
  "id": "17895695668004550"
}

Скоро мы рассмотрим, как Вы можете сами протестировать вызов Graph API прямо в своём браузере.

Некоторые конечные точки позволяют получать наборы объектов. Например, /user/media позволяет узнать ID всех фото конкретного бизнес аккаунта Instagram.

Чтобы выполнять запросы к Graph API для Instagram необходимо в запрос добавить маркер доступа пользователя Facebook, у которого есть роль на странице Facebook, связанной с аккаунтом пользователя Instagram Business. Маркеры доступа к Странице, которые используются для ботов, работающих в Facebook Messenger, не поддерживаются.

Маркер доступа пользователя Facebook обеспечивает временный защищённый доступ к различным API Facebook. Такой маркер получает например приложение (когда Вы подключаете в нём свой аккаунт Facebook), которое выполняет автопостинг на вашу страницу Facebook, например Buffer. Есть краткосрочные (действительны в течение 1-2 часов) и долгосрочные (могут быть действительны до 60 дней) маркеры.

Для Instagram API также действуют ограничения количества обращений (200 вызовов на каждого пользователя в час). Facebook определяет, какое количество пользователей у Вашего приложения (с каким количеством пользователей взаимодействует Ваше приложение). Потом умножает это число на 200 и получается Ваша квота на количество возможных сообщений. Скорее всего Вы не исчерпаете данный лимит, но за этим нужно всё равно следить. Посмотреть квоты на обращения к API можно в панели управления Вашим приложением.

WebHook. Вы также можете настроить, чтобы Facebook сам присылал уведомления на Ваш сервер при наступлении следующих событий:

  • новые комментарии к Вашим медиаобъектам,
  • окончание срока показа Ваших историй.

Настройка, тестирование.

Итак, если у Вас бизнес аккаунт Instagram привязан к Странице Facebook и у Вас есть роль на этой странице (например, Вы - создатель), то дальше Вам необходимо зарегистрировать своё приложение бота и настроить его. В статье "Боты для Facebook. Настройка" я уже описывал процесс регистрации приложения, но только в данном случае необходимо добавить другие сервисы, а именно, "Вход через Facebook" и "API Instagram".

Вход через Facebook необходим для получения маркера доступа:

  1. Перейдите на developers.facebook.com и в меню "Мои приложения" в правом верхнем углу выберите своё приложение.
  2. В меню навигации "+ Добавить продукт" выберите "Вход через Facebook" и нажмите "Настроить".
  3. Пропустите "Начало работы", откройте "Настройки" и выберите "Использовать строгий режим для URI перенаправления". Настройте поле "Действительный URI для перенаправления oAuth"

Теперь нужно добавить API Instagram.

  1. Снова нажмите "+ Добавить продукт" и выберите "API Instagram".
  2. В разделе "Проверка приложения для Instagram" выберите разрешения (обычно нужно instagram_basic)

Прокрутите вниз страницы и выберите "Посмотреть заметки". В появившемся диалоге опишите, как Вы будете использовать API Instagram и приложите файл, в котором видно, как Вы используете приложение. Далее внизу диалога нажми "Отправить на проверку". Это проверка отличается от проверки Вашего приложения и Вашей компании, которую Вам предстоит пройти в конце.

После одобрения Вашей заявки, Вы можете сами протестировать приложение (поработать с Graph API). Тестируется приложение при помощи Graph API Explorer. Почитать алгоритм действий (там также описано, как можно узнать ID своего бизнес аккаунта Instagram) можно здесь.

Теперь, если Вам удалось протестировать приложение, то изучите руководство по проверке Входа через Facebook, чтобы убедиться, что выполнены все требования, и Вы можете отправить приложение на проверку.

Итак, настройка приложения для использования Graph API для Instagram - процедура довольно не простая. Но в отличии от бота для Facebook Messenger, для того чтобы использовать API для Instagram нужно проходить проверку приложения, при которой Вас попросят предоставить документы на Вашу компанию. Можно конечно пройти проверку для индивидуального пользователя, но в списке доступных сервисов для индивидуального использования нет Graph API для Instagram :(

Поэтому, если Вы не предприниматель, то остаётся пробовать использовать платформу Instagram (у Instagram есть свои собственные API), а не Facebook, которую мы рассмотрим в другой статье.

Мои контакты

Телеграм: papabotovbotreactorcryptsys