gpt4 book ai didi

facebook messenger - 关闭 webview 并通知 webhook

转载 作者:行者123 更新时间:2023-12-02 03:05:09 27 4
gpt4 key购买 nike

我将用户从 Messenger 聊天发送到我应用程序中的支付页面。Messenger 在 WebView 中打开页面。现在我想关闭 webview 并将用户发送回 Messenger,同时向 webhook 发送一些内容以通知它用户已完成支付页面。

实现此目标的最佳方法是什么?

最佳答案

只有支付页面被控制(由您开发)才能实现,如果是第三方支付网关则无能为力。如果支付页面由您控制,您可以通过 web_url 将发送者 ID 作为参数传递或通过

获取发送者 ID
<script>
(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.com/en_US/messenger.Extensions.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "Messenger"));

window.extAsyncInit = function () {
// the Messenger Extensions JS SDK is done loading
MessengerExtensions.getUserID(function success(uids) {
var psid = uids.psid;//This is your page scoped sender_id
alert(psid);
}, function error(err) {
alert("Messenger Extension Error: " + err);
});
};
</script>

然后,您可以使用发件人 ID 将消息文本发送回机器人。 在发送完所有这些包括此脚本后关闭 webview 给机器人发短信

   <script>
(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.com/en_US/messenger.Extensions.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "Messenger"));

window.extAsyncInit = function () {
// the Messenger Extensions JS SDK is done loading
//close the webview
MessengerExtensions.requestCloseBrowser(function success() {

}, function error(err) {

});

};
</script>

就像在您的 Bot 中一样,您必须确保在发送文本之前页面访问 token 可用,还要确保您将 webview 中使用的域列入白名单,并在您的 web_url 按钮中设置“messenger_extensions”:true否则您将无法使用 Messenger Extension 获取发件人 ID

引用资料

url button

messenger extension

关于facebook messenger - 关闭 webview 并通知 webhook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43279778/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com