私密回覆

本文件說明如何以程式設計的方式將私訊回覆加入傳送訊息體驗。

運作方式

私密回覆可以讓應用程式用戶傳送單一訊息給在應用程式用戶的 Instagram 專業帳號貼文、廣告貼文、 Reel 或直播限時動態中留言的 Instagram 用戶。

當您的 Webhook 伺服器收到 commentslive_comments 事件通知時,您可以使用留言編號直接向發佈留言的 Instagram 用戶傳送私密回覆。如果 Instagram 用戶有追蹤 Instagram 專業帳號,此回覆會投遞到 Instagram 用戶的收件匣資料夾中,如果 Instagram 用戶沒有追蹤該帳號,則會投遞到 Instagram 用戶的要求資料夾。

您可以在留言時間後 7 天內傳送私密回覆,但 Instagram Live 例外,您只能在直播期間傳送私密回覆。訊息中會包含 Instagram 用戶留言的貼文連結。

Webhooks

  • 舉辦 Instagram Live 限時動態時,請確認您的伺服器能夠處理因 live_comments Webhooks 事件(透過 Instagram API) 觸發而增加的通知負載量,而且您的系統能夠區分 live_commentscomments 通知。
  • 廣告貼文的 Instagram 圖形 API comments Webhooks 通知會包含廣告的編號和標題。您可能需要更新 Webhooks 伺服器來處理這些新欄位。

    當用 Instagram 戶對加強推廣的 Instagram 貼文或 Instagram 廣告貼文發表留言時,系統會在影音素材物件中傳回 ad_idad_title。如此可能會導致重複的 Webhook 通知。

限制

  • 只能傳送一則訊息給留言的 Instagram 用戶
  • 您必須在貼文、廣告貼文或 Reel 的留言建立後 7 天內傳送訊息
  • Instagram Live 限時動態具有時效性,因此只能在直播期間對 Instagram Live 限時動態的留言傳送私訊回覆。直播結束後,就無法再傳送私密回覆。
  • 您必須等 Instagram 用戶回覆私訊,才能在 24 小時的傳送訊息時限內繼續對話。
  • 一般存取權限應用程式的資料存取對象只限在該應用程式具有角色的用戶

前置準備

本教學導覽假設您已閱讀 Messenger 平台總覽Instagram 傳訊總覽,且已實作所需的元件。

必備項目:

  • 連結至 Instagram 專業帳號的 Facebook 粉絲專頁編號
  • 您的私密回覆傳送對象留言時的留言編號。編號來源包括貼文、廣告貼文和 Reel 的 Instagram comments Webhooks,以及直播限時動態的 Instagram live_comments Webhooks(為避開速度限制,建議採用這個來源),或者是對 /page/feed 端點發出的 API 呼叫
  • instagram_manage_commentspages_messaging 權限,透過 Facebook 登入取得
  • Instagram 用戶要求的粉絲專頁存取權杖,該用戶能夠在與您的 Instagram 專業帳號連結的 Facebook 粉絲專頁上執行 MESSAGING 任務
  • 真人客服功能
  • 進階存取權限

傳送私密回覆

若要傳送私密回覆給在您的貼文、 Reel 或直播限時動態中留言的 Instagram 用戶,請傳送 POST 要求到 /<PAGE_ID>/messages 端點,其中 recipient 參數包含留言編號,message 參數則包含您想要傳送的文字。

採用方便閱讀的格式。
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
  }
);

成功時,應用程式會收到下列回應:

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

另請參閱

開發人員支援