Messenger 擴充功能 SDK 將重要的 Messenger 專屬功能帶到任何在 Messenger 網頁檢視中開啟的網站或網頁版應用程式。有了 SDK,您就可以擷取開啟網頁檢視的用戶的資訊、分享內容至 Messenger 對話,以及與 Messenger 用戶介面深入整合。
納入 Messenger 擴充功能 SDK 後,下列功能將可用於 Messenger 網頁檢視。請注意,這些功能的實際可用情況或會根據 Messenger 與裝置的版本而有所差異。
函數 | 說明 |
---|---|
擷取對話背景資料,例如開啟網頁檢視的用戶的 PSID。 | |
關閉網頁檢視並返回 Messenger 對話。 | |
索取權限以執行擷取用戶個人檔案資訊等操作。 | |
檢查目前獲授予的權限。 | |
查看當前裝置網頁檢視中所支援的功能,例如分享。 |
如需完整的功能使用詳情,請參閱 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 連同下列程式碼,一起加入要在網頁檢視中載入的頁面。在您想載入的每個頁面上,您應該於開首的 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'));
Messenger 擴充功能 JS SDK 完成載入後,
系統就會呼叫 window.extAsyncInit()。您可以使用此方法來觸發系統呼叫 SDK 中的其他可用函數。
window.extAsyncInit = function() { // the Messenger Extensions JS SDK is done loading };
Messenger 擴充功能 SDK 支援流動版與桌面版 Messenger 用戶端。不過,若要擴充功能正常運作,建議您採取下列動作。
您也可以從用戶端的程式碼使用 window.name
屬性來檢查 iframe 的位置。
如果系統在 Messenger 網頁觸發 iframe,我們會將 window.name
設為 「messenger_ref」
。否則,如果是在 Facebook 聊天室分頁中載入, window.name
就會是 「facebook_ref」
。
下列設定或功能在 Messenger 網絡用戶端上不受支援,但在 Messenger 流動用戶端上仍可正常運作。
webview_height_ratio
webview_share_button
如果您無法從網頁呼叫 Messenger 擴充功能 SDK,請考慮下列要點: