通过 Messenger 功能插件 SDK,您可以在使用 Messenger 网页视图打开的任何网站或网页应用中集成重要的 Messenger 特定功能。借助该 SDK,您可以检索打开网页视图的用户的信息、将内容分享到 Messenger 对话,以及深度集成 Messenger 用户界面。
添加 Messenger 功能插件 SDK 后,即可在 Messenger 网页视图中使用以下功能。请注意,功能的实际可用情况因 Messenger 和设备的版本而异。
功能 | 描述 |
---|---|
检索对话背景信息,例如打开网页视图的用户的 PSID。 | |
关闭网页视图并返回 Messenger 对话。 | |
请求执行相关操作(例如检索用户的个人主页信息)的权限。 | |
检查当前授予的权限。 | |
检查当前设备在网页视图中支持的功能,例如分享。 |
如需获取有关使用这些功能的完整信息,请参阅 Messenger 功能插件 SDK 参考文档。
如要在智能助手中使用 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。您应直接在要加载 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,请注意以下事项: