Node.js Facebook messenger网络视图-X-Frame-Options
我试图通过facebook messenger的按钮点击来提供webview, 但它给了我这样的错误Node.js Facebook messenger网络视图-X-Frame-Options,node.js,facebook,facebook-messenger,facebook-messenger-bot,Node.js,Facebook,Facebook Messenger,Facebook Messenger Bot,我试图通过facebook messenger的按钮点击来提供webview, 但它给了我这样的错误 messenger.Extensions.js:97 Uncaught TypeError: Cannot read property 'undefined' of undefined at Object.reportError (messenger.Extensions.js:97) at Object.applyWithGuard (messenger.Extensions.
messenger.Extensions.js:97 Uncaught TypeError: Cannot read property 'undefined' of undefined
at Object.reportError (messenger.Extensions.js:97)
at Object.applyWithGuard (messenger.Extensions.js:97)
at c (messenger.Extensions.js:158)
at messenger.Extensions.js:78
获取方法
app.get('/checkout', (req, res, next) => {
let referer = req.get('Referer');
if (referer) {
if (referer.indexOf('messenger') >= 0) {
res.setHeader('X-Frame-Options', 'ALLOW-FROM https://www.messenger.com/');
} else if (referer.indexOf('facebook') >= 0) {
res.setHeader('X-Frame-Options', 'ALLOW-FROM https://www.facebook.com/');
}
res.render('checkout');
}
});
Messenger SDK代码
(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id)){
返回;
}
js=d.createElement;
js.id=id;
js.src=“//connect.facebook.com/en_US/messenger.Extensions.js”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“信使”);
window.extasyninit=()=>{
//TODO:如何从这里解析env文件?
getSupportedFeatures(函数成功(结果){
let features=result.supported\u features;
控制台日志(结果);
if(功能。包括(“上下文”)){
Messenger Extensions.getContext(“”,
函数成功(线程上下文){
//成功
document.getElementById(“psid”).value=thread\u context.psid;
},
函数错误(err){
//错误
控制台日志(err);
}
);
}
},函数错误(err){
//检索支持的功能时出错
控制台日志(err);
});
document.getElementById('submitButton')。addEventListener('click',()=>{
Messenger Extensions.requestCloseBrowser(函数成功(){
console.log(“Webview关闭”);
},函数错误(err){
控制台日志(err);
});
});
};
当用户提交表单时,我需要PSID。从messenger应用程序提交表单时获得成功。但是浏览器中出现错误。我们目前遇到了相同的问题,没有对messenger进行任何更改,因此我认为这是facebook方面的问题。谢谢,你能告诉我在哪里可以向facebook请求此问题。我已在此处提交了一个问题,也许你也可以在此处发表评论:当然,, @Birne94@Baudev现在开始工作了
(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 = () => {
// TODO: How to parse env file from here?
MessengerExtensions.getSupportedFeatures(function success(result) {
let features = result.supported_features;
console.log(result);
if (features.includes("context")) {
MessengerExtensions.getContext('<APPID>',
function success(thread_context) {
// success
document.getElementById("psid").value = thread_context.psid;
},
function error(err) {
// error
console.log(err);
}
);
}
}, function error(err) {
// error retrieving supported features
console.log(err);
});
document.getElementById('submitButton').addEventListener('click', () => {
MessengerExtensions.requestCloseBrowser(function success() {
console.log("Webview closing");
}, function error(err) {
console.log(err);
});
});
};