常見問題

本文件提供常見問題的回答。

一般

應用程式可透過應用程式網站使用 Facebook 登入 進行安裝,並會授予特定粉絲專頁 pages_messaging 權限。經授權的應用程式會顯示於進階訊息內的粉絲專頁設定中。

是的,單一 Facebook 應用程式可以訂閱至多個粉絲專頁。一旦進行應用程式審查(例如 pages_messaging 權限),該應用程式就能夠訂閱以接收多個頁面上的 Webhook。您可以根據承載自行決定取得每個 Webhook 的環境。

可以,您可以讓多個應用程式訂閱粉絲專頁。當有多個應用程式處理相同對話時,建議使用 交接通訊協定 來處理在任何指定時間擁有對話串的 Bot(機器人程式)。

一般資料保護規章(GDPR)

進入點

使用「傳送到 Messenger」外掛程式時,您可使用 data-ref 參數作為傳遞參數,以傳遞任何有關點擊內容的資訊。

用戶也可能透過在 Messenger 中搜尋來探索您的粉絲專頁。在這種情況下,您就沒有傳遞參數。您可使用帳號連結功能,將對話串與您網站上的用戶帳號建立關聯。

當應用程式處於開發模式,僅應用程式的管理員、開發人員和測試人員才可看見這個外掛程式。在應用程式經過審查並獲批准後,您就可在「應用程式主控板」的「應用程式審查」頁籤中公開應用程式。

一次性通知 API

No. Unlike subscriptions where a business can send multiple messages to people on a recurring basis, the one-time notification API limits the business to a single message per user request. If the person engages with the message, the standard messaging window will reopen.

Yes. Pages interested in using the One-time Notification API need to apply for permission. Go to the Advanced Messaging section of your Page Settings and consent to the terms. A Page will be granted permission if the Page meets our criteria.

Common uses of the API include various promotional and non-promotional use cases where the User explicitly requested a follow-up. Examples include:

  • Back in stock alerts
  • Collection launches
  • Concert tickets going on sale
  • Price drop alerts
  • Train tickets available for purchase
  • CSAT surveys

Your Page is not allowed to send a notification on a topic for which the User has not agreed to receive a notification. Please see the Usage and Restrictions and Limitations sections of the One-time Notification guide for more information.

A Page can send multiple requests however, the 24-hour policy will be applied to all the requests being sent. We also have controls in place to prevent spamming users with multiple requests.

The 24 hour standard messaging window will open only if the user interacts with the opt-in message. The behavior is consistent with interactions with other elements in the Messenger experience.

Once a person asks to be notified, the Page will receive a token which is equivalent to a permission to send a single message to the person. The token can be used to send a message to the person outside the 24 hour window. The token can only be used once and unused tokens will expire within 1 year of creation.

Yes. However, while it is possible to send another notification request using an existing token, there is no clear benefit for the business to send these type of requests.

No. The API does not return tokens available to a Page.

No. The app does not need to specify any message tags when sending a message outside the 24-hour standard messaging window using this API.

傳送/接收 API

發生這類錯誤可能有以下幾個原因:

  • 您使用來自「Facebook 登入」的編號: 來自「Facebook 登入」的用戶編號不應用於傳送/接收 API。只有透過 Messenger 平台驗證取得的用戶編號才可用於 Messenger 平台
  • 您使用的編號有不正確的粉絲專頁存取權杖: 用於 Messenger 平台的用戶編號侷限於粉絲專頁的範圍,因此是粉絲專頁特定的用戶編號。如果您使用有效的用戶編號,但使用的粉絲專頁存取權杖與不同的粉絲專頁相關聯,則呼叫會失敗。請務必使用與相同粉絲專頁相關聯的用戶編號和粉絲專頁存取權杖。
  • 您傳送到最近並未驗證的電話號碼: 使用傳送 API 搭配電話號碼時,只有在電話號碼最近經過驗證時,我們才會傳送訊息。即使顯示電話號碼已經過驗證,但如果最近並未驗證,傳送仍可能失敗。請重新驗證電話號碼,然後等候 24 小時後再試。

針對 Messenger 平台整合,使用平台測試用戶的因應措施如下:

  1. 在應用程式的角色頁面,點擊「新增」按鈕,建立新的測試用戶。
  2. 切換為此應用程式授權測試用戶?選項,然後授予「manage_pages」「page_messaging」權限。
  3. 使用「編輯」按鈕,取得這位用戶的存取權杖(使用第 2.6 版)。請儲存此存取權杖以供稍後使用。
  4. 使用編輯按鈕,以該測試用戶的身分登入。
  5. 登入後,以測試用戶的身分建立粉絲專頁。
  6. 使用該測試用戶的用戶存取權杖,取得這位用戶的粉絲專頁存取權杖。您可使用以下呼叫來完成這項操作:
    https://graph.facebook.com/v2.6/me/accounts?access_token=[TEST_USER_ACCESS_TOKEN]
    說明文件
  7. 使用這個粉絲專頁存取權杖,將 Facebook 應用程式連結到粉絲專頁:
    https://graph.facebook.com/v2.6/me/subscribed_apps?method=POST&access_token=[TEST_USER_PAGE_ACCESS_TOKEN]
            
    說明文件
  8. 按照上述步驟操作後,您就會收到測試粉絲專頁的即時更新,並且能夠從測試粉絲專頁傳送訊息給測試用戶。 除了上述步驟之外,如果存取權杖太快到期而無法測試,您可將存取權杖替換為長期權杖。請按照此處的說明文件進行:
    GET /oauth/access_token?  
        grant_type=fb_exchange_token&           
        client_id={app-id}&
        client_secret={app-secret}&
        fb_exchange_token={short-lived-token} 
            

Bot 可以同時包含這兩種類型的訊息。用戶必須透過合格的觸發動作來觸發標準平台訊息,並且選擇接收訂閱訊息。

技術上而言,Bot 無法在超過 24 小時後發送一次以上的訊息給用戶(訊息不會傳送)。在現有 Bot 的過渡期間,這些訊息會完成發送,但是如果系統發現這種情況,就會標示異常。

不行,Messenger 開放平台沒有提供這樣的 API,無法針對所有曾選擇從 Bot 接收訊息的用戶,傳回 PSID 清單。

Webhooks

需要兩個步驟才能接收回呼。首先,確定 Webhook 是否正確設定(https://developers.facebook.com/docs/messenger-platform/webhook-reference#setup)。當 Webhook 正確設定時,畫面會顯示指示器。

接著,您必須訂閱每個粉絲專頁。畫面會列出所有訂閱的粉絲專頁。

如果對 Webhook 的呼叫長時間都失敗,系統會將您的應用程式取消訂閱,您就必須重新新增 Webhook 並重新訂閱粉絲專頁。

對 Webhook 發出的呼叫會在標頭中包含名為 X-Hub-Signature 的欄位,您可使用這個欄位來驗證呼叫是否來自 Facebook。

請確定 Webhook 以狀態代碼 200 回應。這樣會告知我們已成功收到 Webhook。如果您未傳回狀態代碼 200,我們會重新嘗試呼叫,直到成功完成為止。此外,如果 Webhook 很長一段時間都未傳回狀態代碼 200,我們就會傳送開發人員重要通知。

另請注意,成功狀態代碼必須即時傳回。Webhook 呼叫會在 20 秒後逾時。請務必在設計程式碼架構時,以非同步的方式處理 Webhook,以便可立即傳回成功狀態代碼,然後分別處理 Wehbook。

我們提供一個可顯示最新 Webhook 錯誤的工具。在 Webhooks 無法傳遞的情況下,Facebook 伺服器會取消訂閱您的網址。若要尋找該工具,請依序點擊「應用程式主控板」>「Messenger」>「設定」,在 Webhooks 卡中找到名為「顯示最新錯誤」的按鈕

另請參閱