已为Facebook Messenger的ms bot框架编写了bot,该bot 使用自定义渠道数据附件创建了轮播,并启用了Messenger扩展:。我们已经在Webview页面上添加了Messenger扩展,但是目前尚不清楚如何将 带有附件的* 消息从该Webview页面发送回Messenger,从而发送回bot框架。web_url``"messenger_extensions": true *
web_url``"messenger_extensions": true
<!DOCTYPE html> <html> <body> <style type="text/css"> .button { background-color: #4CAF50; /* Green */ border: none; color: white; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; width: 50%; margin: 25%; } </style> <button type="button" class="button" onclick="sendMessage();">Complete Booking</button> <script type="text/javascript"> function sendMessage() { alert('Booking completed. What to do now? How to send the message back to bot?') /// how to return? the facebook docs don't say anything /// you HAVE to make a server round trip.. https://stackoverflow.com/questions/43956045/messengerextensions-how-to-send-a-message-by-messenger-to-users return { text: "HOTEL_SERVICE_PAYLOAD", attachments: [ { email: "some@email.com", hotelName: "Hotel marriott", confirmNumber: "1234567" } ] } MessengerExtensions.requestCloseBrowser(function success() { }, function error(err) { }); } (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("Getting PSID") alert("This is the user's psid " + psid); }, function error(err) { alert("Messenger Extension Error: " + err); }); }; </script> </body> </html>
阅读了大量的文档和博客,。
页面上是否嵌入了JavaScript脚本的简单示例?谢谢!
如果我理解正确的问题,则可以设置一个触发消息发送的API端点,并在`MessengerExtensions.requestCloseBrowser()的成功回调中命中该端点。
使用jQuery和node的express模块的示例:
网页浏览:
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 $.post('https://myapi.com/sendOnWebviewClose', {"psid": psid}) }, function error(err) { alert("Messenger Extension Error: " + err); }); };
服务器:
app.post('/sendOnWebviewClose', (req, res) => { let psid = req.body.psid; sendMessage(psid); })