비공개 답장

이 문서는 메시지 경험에 비공개 답장을 프로그래밍 방식으로 추가하는 방법을 보여줍니다.

사용 방법

비공개 답장을 사용하면 Instagram 프로페셔널 계정이 Instagram 프로페셔널 게시물, 광고 게시물, 릴스 또는 라이브 스토리에 댓글을 단 사용자에게 단일 메시지를 보낼 수 있습니다.

사용자가 비즈니스의 Instagram 프로페셔널 게시물, 광고 게시물, 릴스 또는 라이브 스토리에 댓글을 달았다고 알리는 comments 또는 live_comments Webhooks 알림을 Instagram 그래프 API를 통해 수신하는 경우, 댓글 ID를 사용하여 해당 사용자에게 비공개 답장을 직접 보낼 수 있습니다. 이 답장은 사용자가 비즈니스의 Instagram 프로페셔널 계정을 팔로우할 경우에는 사용자의 받은 메시지함 폴더로 전달되고, 사용자가 해당 계정을 팔로우하지 않을 경우 사용자의 요청 폴더로 전달됩니다.

이 비공개 답장은 댓글 작성일로부터 7일 이내에 보낼 수 있으나, Instagram Live는 라이브 방송 중에만 비공개 답장을 보낼 수 있습니다. 메시지에는 사용자가 댓글을 단 게시물의 링크가 포함됩니다.

Webhooks

  • Instagram Live 스토리를 호스팅할 때는 서버가 live_comments Instagram API 를 통해 Webhooks 이벤트에서 트리거한 알림으로 인한 부하 증가를 서버에서 감당하고 시스템이 live_commentscomments 알림을 구분할 수 있도록 해야 합니다.
  • 광고 게시물에 대한 Instagram 그래프 API comments Webhooks 알림에는 광고의 ID와 제목이 포함됩니다. 이러한 새로운 필드를 처리하려면 Webhooks 서버를 업데이트해야 할 수 있습니다.

    사용자가 홍보성 Instagram 게시물이나 Instagram 광고 게시물에 댓글을 남기면 미디어 개체에서 ad_idad_title이 반환됩니다. 이로 인해 Webhooks 알림에 중복이 있을 수 있습니다.

제한 사항

  • 댓글을 단 사용자에게 하나의 메시지만 보낼 수 있습니다.
  • 메시지는 게시물, 광고 게시물 또는 릴스의 댓글에 대해 답글을 생성한 시점으로부터 7일 이내에 전송해야 합니다.
  • Instagram Live 스토리의 단기적 성격으로 인해 Instagram Live 스토리 댓글에 대한 비공개 답장은 라이브 방송 중에만 보낼 수 있습니다. 라이브 방송이 끝나는 즉시 더 이상 비공개 답장은 보낼 수 없습니다.
  • 사용자가 비공개 답장에 응답하는 경우에만 24시간 메시지 전송 기간 내에 대화를 계속할 수 있습니다.
  • Standard Access 앱은 앱에서 역할이 부여된 사용자의 데이터에만 액세스할 수 있습니다.
  • IGTV 댓글에 대한 비공개 답장은 지원되지 않습니다.
  • API v7.0 이하 버전의 경우 비공개 답장에 인간 상담원 기능과 인간 상담원 메시지 태그가 필요합니다.

시작하기 전에

이 튜토리얼에서는 Messenger 플랫폼 개요Instagram 메시지 개요를 읽었고 필수적인 구성 요소를 구현한 것으로 가정합니다.

다음과 같은 항목이 필요합니다.

  • Instagram 프로페셔널 계정에 연결된 Facebook 페이지의 ID
  • 비공개 답장을 받는 사용자가 남긴 댓글의 ID. ID는 게시물, 광고 게시물, 릴스의 경우 Instagram comments Webhooks에서, Live 스토리의 경우 Instagram live_comments Webhooks(사용 제한을 피하고자 할 경우에 권장)에서, 또는 /page/feed 엔드포인트로 API 호출을 보내어 얻을 수 있습니다.
  • Facebook 로그인을 통해 얻은 instagram_manage_commentspages_messaging 권한
  • Instagram 프로페셔널 계정에 링크된 Facebook 페이지에서 MESSAGING 작업을 수행할 수 있는 사용자가 요청한 페이지 액세스 토큰
  • 인간 상담원 기능
  • Advanced Access

비공개 답장 보내기

게시물, 릴스 또는 라이브 스토리에 댓글을 단 사용자에게 비공개 답장을 보내려면 /PAGE-ID/messages 엔드포인트로 POST 요청을 보내세요. 이때 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
}

기타 참고 자료

개발자 지원