Respostas privadas

Este documento mostra como adicionar as respostas privadas à sua experiência de mensagem de forma programática.

Como funciona

As respostas privadas permitem que uma conta profissional do Instagram envie uma mensagem única a quem comentou em uma publicação, uma publicação de anúncio, um reel ou um story ao vivo dela.

Quando você recebe uma notificação de webhook comments ou live_comments, pela Graph API do Instagram, de que uma pessoa comentou em uma publicação, uma publicação de anúncio, um reel ou um story ao vivo da sua conta profissional do Instagram, é possível usar o ID do comentário para enviar uma resposta privada diretamente a quem comentou. Essa resposta será entregue na pasta Caixa de Entrada, caso a pessoa siga a conta profissional do Instagram da empresa, ou na pasta Solicitação, caso não siga.

A resposta pode ser enviada até 7 dias depois da criação do comentário (exceto para Instagram Live, cujos comentários só podem ser respondidos durante a transmissão). A mensagem terá o link da publicação em que a pessoa comentou.

Webhooks

  • Ao fazer um story do Instagram Live, verifique se o seu servidor pode gerenciar o aumento da carga de notificações disparadas por eventos de webhooks live_comments pela API do Instagram e diferenciar entre notificações live_comments e comments.
  • As notificações de webhook comments da Graph API do Instagram para publicações de anúncios incluirão a identificação e o título do anúncio. Talvez você precise atualizar o servidor de webhooks para processar esses novos campos.

    Quando alguém comentar uma publicação turbinada ou de anúncio no Instagram, o ad_id e o ad_title serão retornados no objeto de mídia. Isso pode fazer com que as notificações de webhook sejam duplicadas.

Limitações

  • É possível enviar somente uma mensagem para a pessoa que comentou.
  • A mensagem precisa ser enviada no máximo 7 dias depois de a pessoa comentar na publicação, na publicação de anúncio ou no reel.
  • Devido à temporariedade dos stories do Instagram Live, as respostas privadas a comentários nesse tipo de mídia só podem ser enviadas durante a transmissão. Quando a transmissão é encerrada, as respostas privadas não podem mais ser enviadas.
  • A conversa com a pessoa só pode continuar na janela de mensagens de 24 horas caso ela responda à mensagem privada.
  • Os apps com acesso padrão podem acessar os dados apenas de pessoas com uma função no app.
  • Não há compatibilidade com respostas privadas a comentários em IGTV.
  • Na versão 7.0 ou anteriores da API, é necessário o recurso ou a tag de mensagem Human Agent para respostas privadas.

Antes de começar

Neste tutorial, presumimos que você leu os guias Messenger Platform Overview e Instagram Messaging Overview, bem como implementou os componentes necessários.

Você precisará do seguinte:

  • O ID da Página do Facebook vinculada à sua conta profissional do Instagram.
  • O ID do comentário feito pela pessoa a quem você está enviando a mensagem privada. Ele pode ser obtido do webhook comments, para publicações, publicações de anúncio e reels, e live_comments, para stories ao vivo (recomendado para evitar a limitação de volume). Outra possibilidade é fazer uma chamada de API para o ponto de extremidade /page/feed.
  • As permissões instagram_manage_comments e pages_messaging, obtidas por meio do Login do Facebook.
  • Um token de acesso à Página solicitado por uma pessoa que pode executar a tarefa MESSAGING na Página do Facebook vinculada à conta profissional do Instagram.
  • O recurso Human Agent.
  • Acesso avançado.

Enviar uma mensagem privada

Para enviar uma resposta a uma pessoa que comentou na sua publicação, reel ou story ao vivo, envie uma solicitação POST ao ponto de extremidade /PAGE-ID/messages, incluindo o parâmetro recipient com o ID do comentário e message com o texto a ser enviado.

Texto formatado para facilitar a leitura.
curl -i -X POST "https://graph.facebook.com/PAGE-ID/messages
  ?recipient: { comment_id: COMMENT-ID }
  &message: { "text": "Thanks for reaching out, how can I help?" }
  &access_token=PAGE-ACCESS-TOKEN"
GraphRequest request = GraphRequest.newPostRequest(
  accessToken,
  "/1353269864728879/messages",
  new JSONObject("{\"recipient\":\"{comment_id: 18000158536435933}\",\"message\":\"{\\\"text\\\": \\\"It is cool\\\"}\"}"),
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});
request.executeAsync();
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
    initWithGraphPath:@"/1353269864728879/messages"
           parameters:@{ @"recipient": @"{comment_id: 18000158536435933}",@"message": @"{"text": "It is cool"}",}
           HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    // Insert your code here
}];
FB.api(
  '/1353269864728879/messages',
  'POST',
  {"recipient":"{comment_id: 18000158536435933}","message":"{\"text\": \"It is cool\"}"},
  function(response) {
      // Insert your code here
  }
);

Se o processo for bem-sucedido, o app receberá a seguinte resposta:

{
  "recipient_id": "526...",   // The Instagram-scoped ID 
  "message_id": "aWdfZ..."    // The message ID for your private reply
}

Veja também

Suporte ao desenvolvedor