我想在Microsoft Edge中使用Facebook Messenger Extensions(打开Webview)。
我的应用向REST API端点messages
发送请求。有效载荷如下。 Documentation on this
{
"messaging_type":"RESPONSE",
"recipient":{
"id":"<id>"
},
"message":{
"attachment":{
"type":"template",
"payload":{
"template_type":"button",
"text":"Test text",
"buttons":[
{
"type":"web_url",
"url":"https://c0292fc0.ngrok.io/facebook/render_multi_choice?data=24561",
"title":"Test Button",
"webview_height_ratio":"full",
"messenger_extensions":"true",
"fallback_url":"https://c0292fc0.ngrok.io/facebook/render_multi_choice?data=24561"
}
]
}
}
}
}
当用户点击Messenger中的“测试按钮”按钮时,会弹出一个Web视图,并在后备网址/网址上显示响应:https://c0292fc0.ngrok.io/facebook/render_multi_choice?data=24561
注意,URL包含一个参数data = 24561
我的Python Flask应用程序收到请求:
@application.route("/facebook/render_multi_choice", methods=["GET"])
def render_multi_choice():
args = request.args
print(args)
return "OK"
问题在于人们会期望args打印出来:
ImmutableMultiDict([('data', 24561), ('fb_iframe_origin', '')])
然而,它打印出来:
ImmutableMultiDict([('data', ''), ('fb_iframe_origin', '')])
我的流程在Google Chrome中运行良好,但不适用于Microsoft Edge。你知道问题是什么吗?如果我直接在浏览器中打开URL(没有Webview),那么就可以在Edge上按预期工作了。