Facebook Messenger API:在浏览器中打开 Webview

Facebook Messenger API: Webviews Opening in Browser

我正在尝试使用 Facebook Messenger API 创建带有按钮的 "generic" 消息。单击该按钮后,我想显示一个 "webview"(即 Messenger 中网页的框架版本)。

但是,即使我的按钮具有所需的 webview_height_ratio 属性,它仍然会在我的 phone 的浏览器中打开,而不是在 Messenger 中打开。由于 Facebook 文档声称这就是让按钮打开 webview 所需的全部内容,我不确定我可能做错了什么。

我发送给 Facebook 以创建按钮的消息(作为通用模板的一部分)是:

{
    "recipient":{
        "id": "some ID"
    },
    "message": {
        "attachment":{
            "payload":{
                "elements":[{
                    "buttons": [{
                        "title":"Webview example",
                        "type":"web_url",
                        "url":"http://www.example.com",
                        "webview_height_ratio":"compact"
                    }],
                    "image_url": "http://www.example.com/image.png",
                    "item_url": "http://www.example.com",
                    "subtitle":"It's a TV!",
                    "title":"Some TV"
                }],
                "template_type":"generic"
            },
            "type":"template"
        }
    }
}

谁能告诉我我可能做错了什么?

编辑: 我不确定是否有必要,但我已将我试图指向 webview 的域列入白名单(但显然没有有帮助)。

显然,webview 是在上次更新后才开始工作的。

尝试更新您的 Messenger 应用。

https://messengerblog.com/bots/messenger-platform-1-2-link-ads-to-messenger-enhanced-mobile-websites-payments-and-more/

我发现 webview 仅适用于尺寸 'tall' 和 'compact',因为 'full' 会在我的 Android phone 上打开默认浏览器。 我没有使用扩展程序,但尝试将此选项设置为 false 和 true,但这只会使按钮不显示。

事实证明我做的一切都是对的:问题出在 Facebook 上。显然,当您使用网络视图时,它 影响移动用户。无论您是否指定 webview_height_ratio.

,基于 Web 的 Messenger 用户都会获得一个新的 window

我遇到了同样的问题。

在这个街区

      "buttons": [{
                    "title":"Webview example",
                    "type":"web_url",
                    "url":"http://www.example.com",
                    "webview_height_ratio":"compact"
                }],

尝试在网页视图高度比后添加此部分

"messenger_extensions": "true"

Url 在 webview 中使用它之前应该被列入白名单。用于将域列入白名单。参考 Link

https://developers.facebook.com/docs/messenger-platform/thread-settings/domain-whitelisting/

为了让 webview 在浏览器上运行(chrome 和 rambox Messenger 已测试)除了添加 webview_height_ratio 字段外,您还需要将 messenger_extensions 设置为 true .