Следующий контент взят из документации по Webhooks. Ознакомьтесь с ней, если вы еще не работали с Webhooks.
Для получения уведомлений Webhooks в режиме реального времени должны быть соблюдены следующие условия:
Если для разрешений приложения не будет обеспечен уровень расширенного доступа, это приложение не будет получать уведомления Webhooks.
media
ID комментария из Webhooks.-1
.comments
и live_comments
, ваше приложение должно пройти проверку (получить расширенный доступ). Создайте конечную точку, которая принимает и обрабатывает Webhooks. Во время конфигурации выберите объект Instagram Graph API, нажмите Настроить и подпишитесь на одно или несколько полей Instagram.
Поле | Описание | Необходимые разрешения |
---|---|---|
Комментарии к IG Media, которым владеет пользователь Instagram вашего приложения. Когда человек комментирует продвигаемую публикацию Instagram или публикацию с рекламой, в объект медиафайла возвращаются параметры | ||
Комментарии к IG Media в прямом эфире, которым владеет пользователь Instagram вашего приложения. | ||
@Упоминания пользователя Instagram вашего приложения в комментарии. | ||
Метрики, описывающие взаимодействия с историей. Отправляются через 1 час после истечения срока действия истории. |
На Странице, связанной с аккаунтом пользователя приложения, должны быть включены подписки. Для этого приложение должно отправить запрос POST
к границе контекста Page Subscribed Apps и подписаться на любое поле Страницы.
POST /{page-id}/subscribed_apps ?access_token={access-token} &subscribed_fields={fields}
Заполнитель значения | Описание значения |
---|---|
| ID Страницы, связанной с аккаунтом пользователя приложения. |
| Маркер доступа к Странице пользователя приложения. |
| Поле Страницы (пример: |
Приложение не будет получать уведомления об изменениях в нем, если только вы не настроите подписки на Странице на Панели приложений и не подпишетесь на это поле.
curl -i -X POST \
"https://graph.facebook.com/v21.0
/1755847768034402/subscribed_apps?subscribed_fields=feed&access_token=EAAFB..."
{ "success": true }
Если вы подпишетесь на поле story_insights
, то при истечении срока действия истории мы отправим на вашу конечную точку уведомление Webhooks с метриками статистики истории.
[ { "entry": [ { "changes": [ { "field": "story_insights", "value": { "media_id": "18023345989012587", "exits": 1, "replies": 0, "reach": 17, "taps_forward": 12, "taps_back": 0, "impressions": 28 } } ], "id": "17841405309211844", // Instagram Business or Creator Account ID "time": 1547687043 } ], "object": "instagram" } ]
Если вы подпишетесь на поле mentions
, то при каждом @упоминании бизнес-аккаунта или аккаунта автора Instagram в комментарии или подписи мы будем отправлять уведомление Webhooks на вашу конечную точку.
Ниже приведен пример полезных данных в уведомлении Webhooks о комментарии для бизнес-аккаунта Instagram (17841405726653026
).
[ { "entry": [ { "changes": [ { "field": "mentions", "value": { "comment_id": "17894227972186120", "media_id": "17918195224117851" } } ], "id": "17841405726653026", "time": 1520622968 } ], "object": "instagram" } ]
Чтобы получить содержимое комментария, выполните запрос к границе контекста GET /{ig-user-id}/mentioned_comment
со свойством comment_id
.
GET https://graph.facebook.com/17841405726653026 ?fields=mentioned_comment.comment_id(17894227972186120)
{ "mentioned_comment": { "timestamp": "2018-03-20T00:05:29+0000", "text": "@bluebottle challenge?", "id": "17894227972186120" }, "id": "17841405726653026" }
Получив ответ, проанализируйте полезные данные свойства text
и решите, нужно ли отвечать на комментарий. Чтобы ответить на него, выполните запрос к конечной точке POST /{ig-user-id}/mentions
, указав значения свойств caption_id
и media_id
из полезных данных уведомления Webhooks.
curl -i -X POST \ -d "comment_id=17894227972186120" \ -d "media_id=17918195224117851" \ -d "message=Challenge%20accepted!" \ -d "access_token={access-token}" \ "https://graph.facebook.com/17841405726653026/mentions"
{ "id": "17911496353086895" }
Если вы подпишетесь на поле mentions
, то при каждом @упоминании бизнес-аккаунта или аккаунта автора Instagram в комментарии или подписи к медиаобъекту, не принадлежащему соответствующей компании или автору, мы будем отправлять уведомление Webhooks на вашу конечную точку.
Ниже приведен пример уведомления Webhooks об @упоминании в подписи для бизнес-аккаунта Instagram (17841405726653026
).
[ { "entry": [ { "changes": [ { "field": "mentions", "value": { "media_id": "17918195224117851" } } ], "id": "17841405726653026", "time": 1520622968 } ], "object": "instagram" } ]
Чтобы получить содержимое подписи, выполните запрос к границе контекста GET /{ig-user-id}/mentioned_media
со свойством media_id
.
GET https://graph.facebook.com/17841405726653026 ?fields=mentioned_media.media_id(17918195224117851){caption,media_type}
{ "mentioned_media": { "caption": "@bluebottle There can be only one!", "media_type": "IMAGE", "id": "17918195224117851" }, "id": "17841405726653026" }
Получив ответ, проанализируйте полезные данные свойства caption
и решите, нужно ли отвечать на комментарий. Чтобы ответить на него, выполните запрос к границе контекста POST /{ig-user-id}/mentions
, указав значение свойства media_id
уведомления Webhooks.
curl -i -X POST \ -d "media_id=17918195224117851" \ -d "message=MacLeod%20agrees!" \ -d "access_token={access-token}" \ "https://graph.facebook.com/17841405726653026/mentions"
{ "id": "17911496353086895" }