Respuestas privadas

En este documento se muestra cómo añadir las respuestas privadas a tu experiencia de mensajes mediante programación.

Funcionamiento

Las respuestas privadas permiten a un usuario de la aplicación enviar un mensaje único a un usuario de Instagram que comentó en una publicación, publicación publicitaria, reel o historia en directo de la cuenta profesional de Instagram del usuario de la aplicación.

Cuando el servidor de webhooks recibe una notificación de evento comments o live_comments, puedes usar el identificador del comentario para enviar una respuesta privada directamente al usuario de Instagram que haya publicado el comentario. Esta respuesta se entregará en la carpeta Bandeja de entrada del usuario de Instagram (si sigue a la cuenta profesional de Instagram) o en la carpeta Solicitudes del usuario de Instagram (si no sigue a la cuenta).

Las respuestas privadas se pueden enviar en los siete días posteriores a la fecha de creación del comentario, excepto en el caso de Instagram Live, donde solo se puede enviar una respuesta privada durante la transmisión en directo. El mensaje contendrá un enlace a la publicación en la que comentó el usuario de Instagram.

Webhooks

  • Al alojar una historia de Instagram Live, asegúrate de que el servidor pueda gestionar el aumento de la carga de notificaciones activadas por eventos del webhooks live_comments, mediante la API de Instagram, y de que el sistema pueda diferenciar entre las notificaciones de live_comments y comments.
  • En el caso de las publicaciones publicitarias, las notificaciones del webhooks comments de la API Graph de Instagram incluirán el identificador y el título del anuncio. Es posible que tengas que actualizar el servidor de webhooks para que gestione estos nuevos campos.

    Los valores de ad_id y ad_title se devolverán en el objeto multimedia cuando un usuario de Instagram comente en una publicación promocionada de Instagram o una publicación publicitaria de Instagram. Esto puede generar notificaciones de webhook duplicadas.

Limitaciones

  • Solo se puede enviar un mensaje al usuario de Instagram que comentó.
  • El mensaje debe enviarse en los siete días posteriores a la creación del comentario en el caso de los comentarios en una publicación, publicación publicitaria o reel.
  • Debido a la naturaleza transitoria de las historias de Instagram Live, las respuestas privadas en los comentarios de la historias de Instagram Live solo se pueden enviar durante la transmisión en directo. Una vez que la transmisión en directo haya finalizado, no se podrán enviar más respuestas privadas.
  • Solo puedes continuar la conversación dentro del intervalo de mensajes de 24 horas cuando un usuario de Instagram responde al mensaje privado.
  • Las aplicaciones con acceso estándar solo pueden acceder a los datos de las personas que tienen un rol en la aplicación.

Antes de empezar

En este tutorial, suponemos que has leído la Información general de la plataforma de Messenger y la Información general de los mensajes de Instagram y que has implementado los componentes necesarios.

Necesitarás lo siguiente:

  • El identificador de la página de Facebook vinculada a tu cuenta profesional de Instagram.
  • El identificador del comentario que hizo la persona a la que envías la respuesta privada. El identificador se puede obtener en el webhooks comments de Instagram en el caso de publicaciones, publicaciones publicitarias y reels, y el webhooks live_comments de Instagram en el caso de historias en directo (método recomendado para evitar la limitación de frecuencia) o una llamada a la API al extremo /page/feed.
  • Los permisos instagram_manage_comments y pages_messaging, obtenidos mediante el inicio de sesión con Facebook.
  • Un identificador de acceso a la página solicitado por un usuario de Instagram que pueda realizar la tarea MESSAGING en la página de Facebook vinculada a la cuenta profesional de Instagram.
  • La función de agente humano.
  • Acceso avanzado.

Enviar una respuesta privada

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

Se ha aplicado formato con fines de legibilidad.
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
  }
);

Cuando esta operación se completa correctamente, la aplicación recibe la respuesta siguiente:

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

Más información

Asistencia para desarrolladores