Messenger 擴充套件 SDK 可將 Messenger 特定的實用功能帶入任何在 Messenger WebView 中開啟的網站或網路應用程式。透過此 SDK,您可以擷取已開啟 WebView 的用戶資訊、將內容分享至 Messenger 中的對話,以及與 Messenger 用戶介面高度整合。
將 Messenger 擴充套件 SDK 包括在內後,Messenger WebView 將可提供以下功能。請注意,視 Messenger 版本和裝置而定,實際可用功能可能有所差異。
函式 | 說明 |
---|---|
擷取對話背景資料,例如已開啟 WebView 的用戶 PSID。 | |
關閉 WebView 並返回 Messenger 對話。 | |
要求執行權限,例如擷取用戶個人檔案資訊。 | |
查看目前已授予的權限。 | |
查看目前裝置上 WebView 支援的功能,例如分享。 |
如需有關使用這些功能的完整詳細資料,請參閱 Messenger 擴充套件 SDK 參考資料。
若要在 Bot 中使用 Messenger 擴充套件,您必須先將提供網頁的網域加入許可清單;基於安全考量,網頁上的所有網域都必須加入許可清單網域。如需詳細說明,請參閱許可清單相關參考文件。
您可使用以下 API,以程式設計的方式,輕鬆將網域加入許可清單:
curl -X POST -H "Content-Type: application/json" -d '{
"whitelisted_domains":[
"https://petersfancyapparel.com"
]
}' "https://graph.facebook.com/v21.0
/me/messenger_profile?access_token=PAGE_ACCESS_TOKEN"
成功加入後,Messenger 個人檔案 API 會回覆以下訊息:
{"result":"success"}
使用以下程式碼,將 Messenger 擴充套件 JavaScript SDK 加入 WebView 要載入的頁面。您應該在每一個要載入 SDK 的頁面上,將以下程式碼直接插入在 body
開頭標籤後:
(function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/messenger.Extensions.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'Messenger'));
window.extAsyncInit()
會被系統呼叫,當 Messenger 擴充套件 JS SDK 載入完成後。您可利用這個事件來觸發呼叫 SDK 提供的其他函式。
window.extAsyncInit = function() { // the Messenger Extensions JS SDK is done loading };
行動版和桌面版 Messenger 用戶端都支援使用 Messenger 擴充套件 SDK。不過,您可能必須考慮下列事項,才能使其正常運作。
您也可使用 window.name
屬性,從用戶端程式碼檢查 iframe 的位置。
觸發 Messenger 網頁中的 iframe 時,我們會將 window.name
設為 "messenger_ref"
。如果是在 Facebook 聊天頁籤載入,則會將 window.name
設為 "facebook_ref"
。
Messenger 網頁用戶端不支援下列設定或功能,但這些設定或功能仍可在 Messenger 行動用戶端上正常運作。
webview_height_ratio
webview_share_button
如果無法從網頁呼叫 Messenger 擴充套件 SDK,請考慮下列事項: