Instagram Direct
Настройка аккаунтов
Необходимо:
Аккаунт в инстаграме(ig_account), который должен быть либо Business либо Creator типа.
Аккаунт в фейсбуке (fb_account)
Страница в фейсбуке. (fb_page)
fb_account должен быть администратором fb_page
ig_account должен быть привязан к fb_page
fb_account должен быть добавлен в developers в facebook application администратором приложения.
Как сделать:
0. Перевод Instgram аккаунта в Business или Creator тип:
https://help.instagram.com/502981923235522?fbclid=IwAR2lmGeUfHyvPSLwb8E0aFwUhs2ZgM_uqm7Wz6CejYgYOUVfswllrkEsySo
https://www.facebook.com/business/learn/lessons/set-up-instagram-creator-account
Кроме того, если вы создали новый аккаунт, загрузите аватар, биографию и опубликуйте какой-нибудь пост иначе ивенты не будут приходить на вебхук.
1. Создание страницы в Facebook
На главной странице есть соответствующий раздел, в котором можно её создать.
2. Привязывание аккаунта в Instagram к странице
Для этого нужно открыть страницу, в которой вы являетесь администратором и пройти по Settings→ Instagram:
3. Добавление администратора страницы в девелоперы приложения:
Получение токена и ID Instagram аккаунта:
Выбрать Facebook App (Autofaq_prod)
3. Выбрать User Token
4. Добавить следующие permissions:
pages_show_list
business_management
pages_messaging
instagram_basic
instagram_manage_comments
instagram_manage_insights
instagram_manage_messages
pages_read_engagement
pages_manage_metadata
pages_read_user_content
5. Нажать кнопку Generate Access Token и сохранить полученный токен. Далее мы будем называть его ${explorer_user_access_token}
6. Нужно выполнить запрос GET https://graph.facebook.com/v9.0/oauth/access_token?grant_type=fb_exchange_token&client_id=${app_id}&client_secret=${app_secret}&fb_exchange_token=${explorer_user_access_token}
.
В ответ придёт такой json:
{ "access_token": ${long_lived_user_access_token}, "token_type": "bearer" }.
7. Выполните запрос GET https://graph.facebook.com/v9.0/me/accounts?access_token=${long_lived_user_access_token}
. В ответ вы получите:
{
"data": [
{
"access_token": "${page_acces_token}",
"category": "Personal blog",
"category_list": [
{
"id": "2700",
"name": "Personal blog"
}
],
"name": "{ИМЯ ВАШЕЙ СТРАНИЦЫ В FACEBOOK}",
"id": "${fb_page_id}",
"tasks": [
"ANALYZE",
"ADVERTISE",
"MESSAGING",
"MODERATE",
"CREATE_CONTENT",
"MANAGE"
]
}
],
"paging": {
"cursors": {
"before": "MTA4ODEyODExNzEyOTg4",
"after": "MzE3MjY2NTA1NzY1MTc3"
}
}
}
Нас прежде всего интересует именно ${fb_page_id}.
8. Выполните запрос GET https://graph.facebook.com/${fb_page_id}?fields=access_token&access_token=${long_lived_user_access_token}
.
В ответ вы получите
{
"access_token": ${long_lived_page_access_token},
"id": ${fb_page_id}
}
9. Выполните запрос GET https://graph.facebook.com/v6.0/${fb_page_id}?fields=connected_instagram_account&access_token=${long_lived_user_access_toke}
В ответ вы получите:
{
"connected_instagram_account": {
"id": ${ig_page_id}
},
"id": ${fb_page_id}
}
Откуда мы берём ${ig_page_id}.
Итого у нас есть токен - ${long_lived_user_access_token} и ID Intagram аккаунта ${ig_page_id}.
Подписка приложения на поля
В результате должны получить:
Для проверки выполните:
В результате должы получить что-то вроде этого:
Заполнение настроек канала в autofaq
В поле Токен доступа введите ${long_lived_user_access_token}, а в поле идентификатор страницы введите ${ig_page_id} и нажмите на кнопку сохранить.
Если уровень permission “instagram_manage_messages” = Standard Access
Событие о сообщениях будут приходить только для сообщений отправленных с аккаунтов добавленных в Instagram Testers в настройках приложения.