Ответы в личных сообщениях

В этом документе объясняется, как программным способом добавить функцию "Ответы в личных сообщениях" в интерфейс обмена сообщениями.

Принцип работы

Функция "Ответы в личных сообщениях" позволяет использовать профессиональный аккаунт Instagram для отправки одного сообщения человеку, который оставил комментарий к публикации, сделанной вами из профессионального аккаунта Instagram, а также к публикации с рекламой, видео Reels или истории в прямом эфире.

Когда с помощью API Instagram Graph вы получаете уведомление Webhooks comments или live_comments о том, что тот или иной человек оставил комментарий к публикации из вашего профессионального аккаунта Instagram, публикации с рекламой, видео Reels или истории в прямом эфире, вы можете использовать ID комментария, чтобы отправить ответ в личном сообщении напрямую этому человеку. Ответ будет доставлен в папку Входящие этого человека, если он подписан на профессиональный аккаунт Instagram компании, или в папку Запрос, если человек не подписан на этот аккаунт.

Вы можете отправить этот ответ в личном сообщении в течение 7 дней после создания комментария, за исключением прямых эфиров Instagram Live, для которых ответы в личных сообщениях можно отправлять только во время прямой трансляции. Сообщение будет содержать ссылку на публикацию, для которой человек оставил комментарий.

Webhooks

  • При размещении истории Instagram Live убедитесь, что ваш сервер способен обрабатывать повышенное количество уведомлений, которые отправляются событиями Webhooks live_comments с помощью API Instagram , а также что ваша система может отличать уведомления live_comments от уведомлений comments.
  • Отправляемые с помощью API Instagram Graph уведомления Webhooks comments для публикаций с рекламой будут включать в себя ID и заголовок для рекламного объявления. Для обработки этих новых полей вам, возможно, необходимо будет обновить свой сервер Webhooks.

    Когда человек комментирует продвигаемую публикацию Instagram или публикацию с рекламой, в объект медиафайла возвращаются параметры ad_id и ad_title. Это может привести к дублированию уведомлений Webhooks.

Ограничения

  • Человеку, который оставил комментарий, можно отправить только одно личное сообщение
  • Сообщение должно быть отправлено в течение 7 дней с момента создания комментария к обычной публикации, публикации с рекламой или видео Reels.
  • Из-за ограниченного времени существования историй Instagram Live ответы в личных сообщениях на комментарии к истории Instagram Live могут отправляться только во время прямой трансляции. После окончания прямой трансляции отправка ответов в личных сообщениях будет невозможной.
  • Только если человек ответит на личное сообщение вы можете продолжить переписку в течение 24-часового окна обмена сообщениями.
  • Приложения со стандартным уровнем доступа могут получить доступ к данным только тех людей, у которых есть роль в этом приложении
  • Ответы в личных сообщениях для комментариев в IGTV не поддерживаются
  • Для работы с ответами в личных сообщениях компоненту API 7.0 или более ранних версий требуется функция "Оператор" или метка сообщения функции "Оператор"

Перед началом работы

Для прохождения курса необходимо ознакомиться с обзором платформы Messenger и возможностями обмена сообщениями в Instagram, а также реализовать нужные компоненты.

Вам понадобятся:

  • ID Страницы Facebook, связанной с вашим профессиональным аккаунтом Instagram
  • ID комментария, оставленного человеком, которому вы отправляете ответ в личном сообщении. Этот ID можно получить с помощью Webhooks Instagram comments для обычных публикаций, публикаций с рекламой и видео Reels и с помощью Webhooks Instagram live_comments для историй в прямом эфире (рекомендуется избегать ограничения количества обращений) или посредством вызова API к конечной точке /page/feed
  • Разрешения instagram_manage_comments и pages_messaging, полученные с помощью входа через Facebook
  • Маркер доступа к Странице, запрошенный человеком, который может выполнять задачу MESSAGING на Странице Facebook, связанной с вашим профессиональным аккаунтом Instagram
  • Функция "Оператор"
  • Расширенный доступ

Отправка ответа в личном сообщении

Чтобы отправить ответ в личном сообщении человеку, который оставил комментарий к вашей публикации, видео Reels или истории в прямом эфире, отправьте запрос POST к конечной точке /PAGE-ID/messages, в котором параметр recipient содержит ID комментария, а параметр message содержит текст, который вы хотите отправить.

Для удобства чтения применено форматирование.
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
  }
);

В случае успеха приложение получит следующий ответ:

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

Статьи по теме

Поддержка разработчиков