O conteúdo a seguir é da documentação do produto Webhooks. Se ainda não conhecer os Webhooks, consulte a documentação do recurso.
Para receber notificações de webhook ao vivo, é preciso atender às seguintes condições:
Caso o nível de permissão do app não seja acesso avançado, ele não receberá notificações de webhook.
media
.-1
.comments
e live_comments
. Crie um ponto de extremidade que aceite e processe webhooks. Durante a configuração, selecione o objeto Graph API do Instagram, clique em Configurar e assine um ou mais campos do Instagram.
Campo | Descrição | Permissões necessárias |
---|---|---|
Os comentários em uma mídia do Instagram pertencentes ao usuário do seu app. Quando alguém comentar uma publicação turbinada ou de anúncio no Instagram, o | ||
Os comentários em uma mídia do Instagram ao vivo pertencente ao usuário do seu app. | ||
@menções ao usuário do seu app em um comentário. | ||
As métricas que descrevem interações em um story. Enviadas uma hora depois de ele expirar. |
Seu app precisa habilitar assinaturas de Página na Página conectada à conta do usuário. Para isso, envie uma solicitação POST
à borda Apps assinados na Página e assine qualquer campo da Página.
POST /{page-id}/subscribed_apps ?access_token={access-token} &subscribed_fields={fields}
Espaço reservado do valor | Descrição do valor |
---|---|
| Identificação da Página conectada à conta do usuário do app. |
| O token de acesso à Página do usuário do app. |
| Um campo de Página (por exemplo, |
O app não recebe notificações de alterações no campo a menos que você configure as assinaturas de Página no Painel de Apps e assine o campo.
curl -i -X POST \
"https://graph.facebook.com/v21.0
/1755847768034402/subscribed_apps?subscribed_fields=feed&access_token=EAAFB..."
{ "success": true }
Se você assinar o campo story_insights
, enviamos ao seu ponto de extremidade uma notificação de webhook contendo métricas de interação com o usuário sobre um story depois que ele expirar.
[ { "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" } ]
Se você assinar o campo mentions
, enviamos ao seu ponto de extremidade uma notificação de webhook sempre que um usuário do Instagram @mencionar uma conta empresarial ou de criador de conteúdo em um comentário ou uma legenda.
Veja um exemplo de carga de notificação de webhook de comentário enviada a uma conta empresarial do Instagram (17841405726653026
):
[ { "entry": [ { "changes": [ { "field": "mentions", "value": { "comment_id": "17894227972186120", "media_id": "17918195224117851" } } ], "id": "17841405726653026", "time": 1520622968 } ], "object": "instagram" } ]
Para obter o conteúdo do comentário, use a propriedade comment_id
para consultar a borda GET /{ig-user-id}/mentioned_comment
:
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" }
Quando você receber a resposta, analise a carga para a propriedade text
e decida se quer responder ao comentário. Ao responder, use o caption_id
da carga da notificação de webhook e os valores da propriedade media_id
para consultar o ponto de extremidade POST /{ig-user-id}/mentions
:
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" }
Se você assinar o campo mentions
, enviamos uma notificação de webhook ao seu ponto de extremidade sempre que um usuário @mencionar uma conta empresarial ou de criador de conteúdo do Instagram em um comentário ou uma legenda de um objeto de mídia que não pertence à empresa nem ao criador de conteúdo.
Veja um exemplo de carga de notificação de webhook de @menção em uma legenda enviada a uma conta empresarial do Instagram (17841405726653026
):
[ { "entry": [ { "changes": [ { "field": "mentions", "value": { "media_id": "17918195224117851" } } ], "id": "17841405726653026", "time": 1520622968 } ], "object": "instagram" } ]
Para obter o conteúdo da legenda, use a propriedade media_id
para consultar a borda GET /{ig-user-id}/mentioned_media
:
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" }
Quando você receber a resposta, analise a carga para a propriedade caption
e decida se quer responder ao comentário. Ao responder, use a propriedade media_id
da carga de notificação de webhook para consultar a borda POST /{ig-user-id}/mentions
:
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" }