「帳戶連結」與 Messenger 平台中其他可用的網頁檢視功能有別。這項功能只能透過登入按鈕啟動,無法從 BOT(機械人程式)的常駐選單、網址按鈕,以及已開啟的網頁檢視流程或聊天洽談附加程式內啟動。
凡是使用這些功能的開發人員,現在都可透過 Messenger 擴充功能的 getContext()
函式,以安全的方式取得用戶編號。屆時,Bot 便可運用這個編號來連結用戶帳戶或提供個人化體驗。
目前僅 iOS 版和 Android 版 Messenger 應用程式支援帳戶連結功能。
當用戶與您的企業展開對話,您可以將他們視為已在您企業擁有帳戶的顧客。為了協助這項辨識工作,我們建立了一個安全的通訊協定,可以連結與取消連結 Messenger 用戶身分與您的企業用戶身分之間的連結。
帳戶連結可以讓您邀請用戶使用您的驗證流程登入,並於完成後收到 Messenger 專頁範圍編號(PSID)。這樣,您便可以向用戶提供更安全、更個人化與更有相關性的體驗。
用戶觸發帳戶連結時,Messenger 平台就會觸發帳戶連結網址。redirect_uri
與 account_linking_token
參數會附加在網址回呼中。
<yourAccountLinkingUrl> ?account_linking_token=ACCOUNT_LINKING_TOKEN &redirect_uri=CALLBACK_URL
如果帳戶連結成功,您必須將瀏覽器重新導向 redirect_uri
參數中指定的網址,並附加您自行定義的 authorization_code
參數。請注意,網址可能已包含參數,所以請按照指示附加授權碼:
<redirect_uri> &authorization_code=AUTHORIZATION_CODE
如果帳戶連結失敗,請將瀏覽器重新導向以參數形式傳遞給您的 redirect_uri
,但不要附加 authorization_code
。
參數名稱 | 說明 |
---|---|
| 由 Messenger 新增的重新導向 URI;您必須在驗證流程的最後步驟將瀏覽器重新導向這個位置。此參數可能包含編有參數的網址。 |
| 由 Messenger 傳遞的短效憑證;您需要在重新導向機制的其中一環傳回這個憑證。這個憑證的有效時間只有 5 分鐘、已經加密,而且對於每個用戶均為不重複。 |
| 您提供的代碼,用來確認連結成功。Messenger 平台會連同用戶的 PSID,以帳戶連結 Webhook 事件形式傳回這個代碼。如果無法傳回這個參數,連結流程便會中斷。 |
成功的連結流程會觸發帳戶連結事件,以傳送用戶的專頁範圍編號(PSID)。
您必須登記帳戶連結回呼事件。如果無法確認這個 Webhook 事件,連結流程便會中斷。
在特定情況下,您需要在連結流程中檢索用戶的專頁範圍編號(PSID)。為處理此情況,我們提供了 PSID 檢索端點,讓您以有效且未過期的 account_linking_token
擷取用戶的 PSID。
curl -X GET "https://graph.facebook.com/v2.6/me?access_token=PAGE_ACCESS_TOKEN \ &fields=recipient \ &account_linking_token=ACCOUNT_LINKING_TOKEN"
{ "id": "PAGE_ID", "recipient": "PSID" }
在特定情況下,您需要從後端透過程式輔助的方式取消連結用戶專頁範圍編號(PSID)。為處理此情況,我們提供了 PSID 取消連結端點,讓您以有效的 PSID 取消連結用戶的帳戶。
curl -X POST -H "Content-Type: application/json" -d '{ "psid":"PSID" }' "https://graph.facebook.com/v2.6/me/unlink_accounts?access_token=PAGE_ACCESS_TOKEN"
{ "result": "unlink account success" }
如果您在 Messenger 之外擁有用戶帳戶系統,建議使用「帳戶連結」。
讓用戶在 Messenger 中建立帳戶,並用於其他地方。
如果情況適用,可以提示登入;適用情況亦即是登入對用戶有實際好處的情況。
考慮 Bot 在用戶拒絕登入時應該如何反應。
在用戶登入後提供清楚的確認與友善的歡迎訊息。
如果用戶只會透過 Messenger 與您互動,請勿使用「帳戶連結」。您可以透過對話串編號儲存帳戶資訊。
如非必要,請儘量避免將「帳戶連結」當作必要條件;請讓用戶先了解您的 Bot。