私人回覆

本文件將為您展示如何透過程式輔助的方式將私人回覆加入訊息傳送體驗。

運作方式

私人回覆讓 Instagram 專業帳戶可以向回應您 Instagram 專業帳戶帖子、廣告帖子、連續短片或直播限時動態的用戶傳送單一訊息。

若您透過 Instagram Graph API 收到 commentslive_comments Webhooks 通知,說明有用戶回應了您的 Instagram 專業帳戶帖子、廣告帖子、連續短片或直播限時動態,您可以使用回應編號向該用戶直接傳送私人回覆。如果此用戶追蹤企業的 Instagram 專業帳戶,系統會將這則私人回覆送達用戶的「收件匣」資料夾。但若此用戶未追蹤該帳戶,系統則會將回覆送達用戶的「陌生訊息」資料夾。

您可以在回應建立當日起計的 7 天內傳送這種私人回覆,但 Instagram Live 除外,因為您只能在直播期間傳送私人回覆。此訊息將包含用戶所回應帖子的連結。

Webhooks

  • 在託管 Instagram Live 限時動態時,請確保您的伺服器可以處理 live_comments Webhooks 事件透過 Instagram API 所觸發通知驟增的情況,並且您的系統可以區分 live_commentscomments 通知。
  • 針對廣告帖子的 Instagram Graph API comments Webhooks 通知將會包含此廣告的編號和標題。您可能需要更新 Webhooks 伺服器以處理這些新欄位。

    用戶在加強推廣的 Instagram 帖子或 Instagram 廣告帖子留言時,媒體物件中將傳回 ad_idad_title,這可能會導致您收到重複 Webhook 通知。

限制

  • 只能向發表回應的用戶傳送一則訊息
  • 您必須在帖子、廣告帖子或連續短片回應建立當日起計的 7 天內傳送訊息
  • 鑑於 Instagram Live 限時動態的暫時性質,您只能在直播期間傳送針對 Instagram Live 限時動態回應的私人回覆。直播一結束後,您便無法傳送私人回覆。
  • 只有當用戶回應私人訊息,您才能在 24 小時訊息期間繼續對話。
  • 擁有一般存取權限的應用程式只能存取擁有此應用程式角色之用戶的資料
  • 不支援針對 IGTV 回應傳送私人回覆
  • API v7.0 或更早版本需要真人服務人員功能和真人服務人員訊息標籤,才能傳送私人回覆

準備工作

本教學導覽假設您已閱讀 Messenger 平台概覽Instagram 訊息概覽,並已執行所需的元件。

您需要使用:

  • 已連結至您 Instagram 專業帳戶的 Facebook 專頁編號
  • 您向其傳送私人回覆的用戶所發表回應的編號。您可以透過用於帖子、廣告帖子和連續短片的 Instagram comments Webhooks,以及用於直播限時動態的 Instagram live_comments Webhooks 取得此編號(建議避免限制傳輸率),也可以向 /page/feed 端點發出 API 呼叫來取得
  • instagram_manage_commentspages_messaging 權限,透過 Facebook 登入取得
  • 專頁存取憑證,由可以在已連結至您 Instagram 專業帳戶的 Facebook 專頁上執行 MESSAGE 任務的特定用戶所要求
  • 真人服務人員功能
  • 進階存取權限

傳送私人回覆

如要向回應您帖子、連續短片或直播限時動態的用戶傳送私人回覆,請向 /PAGE-ID/messages 端點傳送 POST 要求,要求中的 recipient 參數包含回應編號,而 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
}

另請參閱

開發人員支援