Respuestas privadas

En este documento, se muestra cómo agregar de manera programática las respuestas privadas a tu experiencia de mensajería.

Cómo funciona

Las respuestas privadas permiten a un usuario de tu app enviar un solo mensaje a un usuario de Instagram que hizo un comentario en la publicación, la publicación de anuncios, el reel o la historia en vivo de la cuenta profesional de Instagram del usuario de la app.

Cuando tu servidor de webhook recibe una notificación de evento comments o live_comments, puedes usar el identificador del comentario para enviar una respuesta privada al usuario de Instagram que publicó el comentario. Esta respuesta se entregará en la carpeta Bandeja de entrada del usuario de Instagram, si este sigue la cuenta profesional de Instagram, o bien en la carpeta Solicitud del usuario de Instagram, si este no sigue la cuenta.

Puedes enviar respuestas privadas dentro de los 7 días siguientes a la creación del comentario, excepto en el caso de Instagram Live, donde solo puedes enviar una respuesta privada mientras dure la transmisión en vivo. El mensaje contendrá un enlace al usuario de Instagram que comentó la persona.

Webhooks

  • Cuando organices una historia de Instagram Live, asegúrate de que tu servidor tenga la capacidad de procesar el aumento de la carga de notificaciones que dispararon los eventos de webhooks live_comments mediante la API de Instagram , y, además, de que tu sistema pueda diferenciar las notificaciones comments y live_comments.
  • Las notificaciones de webhooks comments de la API Graph de Instagram relacionadas con las publicaciones de anuncios incluirán el identificador y el título del anuncio. Es posible que tengas que actualizar tu servidor de webhooks para poder usar estos nuevos campos.

    Se devolverán ad_id y ad_title en el objeto multimedia cuando un usuario de Instagram haga un comentario en una publicación de Instagram promocionada o en una publicación de anuncios en Instagram. De esta manera, es posible que se dupliquen las notificaciones de webhook.

Limitaciones

  • Solo se puede enviar un mensaje al usuario de Instagram que hizo el comentario.
  • El mensaje debe enviarse dentro de los 7 días posteriores al momento en que se creó el comentario en relación con los comentarios de una publicación, publicación de anuncios o reel.
  • Debido al carácter transitorio de Instagram Live Stories, las respuestas privadas a los comentarios de las historias de Instagram Live solo pueden enviarse durante la transmisión en vivo. Una vez que finaliza la transmisión en vivo, ya no es posible enviar respuestas privadas.
  • Únicamente si un usuario de Instagram responde al mensaje privado, puedes continuar la conversación dentro del intervalo de mensajes de 24 horas.
  • Las apps de acceso estándar solo podrán acceder a los datos de las personas que tengan un rol en la app.

Antes de empezar

En este tutorial, se asume que leíste el Resumen de la plataforma de Messenger y el Resumen de mensajes de Instagram, y que implementaste los componentes necesarios.

Necesitarás lo siguiente:

  • El identificador de la página de Facebook vinculado a tu cuenta profesional de Instagram.
  • El identificador del comentario hecho por la persona a la que envías la respuesta privada. Se puede obtener el identificador a partir de los webhooks comments de Instagram en el caso de las publicaciones, las publicaciones de anuncios y los reels; y de los webhooks live_comments de Instagram en el caso de las historias en vivo (lo que se recomienda para evitar la limitación de frecuencia). O bien, se puede obtener con una llamada a la API al punto de conexión /page/feed.
  • Los permisos instagram_manage_comments y pages_messaging, que se obtienen mediante el inicio de sesión con Facebook.
  • Un token de acceso a la página solicitado por un usuario de Instagram que puede realizar la tarea MESSAGING en la página de Facebook vinculada a tu cuenta profesional de Instagram.
  • La función de agente humano.
  • Advanced Access

Enviar una respuesta privada

Para enviar una respuesta privada a un usuario de Instagram que comentó tu publicación, reel o historia en vivo, envía la solicitud POST al punto de conexión /<PAGE_ID>/messages, donde el parámetro recipient contiene el identificador del comentario, y el parámetro message, el texto que deseas enviar.

El formato se modificó para facilitar la lectura.
curl -i -X POST "https://graph.facebook.com/&lt;PAGE_ID>/messages
  ?recipient: { comment_id: &lt;COMMENT_ID> }
  &message: { "text": "Thanks for reaching out, how can I help?" }
  &access_token=&lt;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
  }
);

Si la operación se completa correctamente, tu app recibirá la siguiente respuesta:

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

Más información

Asistencia para desarrolladores