我正在尝试使用Messenger Extensions Javascript SDK创建Messenger Web View(https://developers.facebook.com/docs/messenger-platform/messenger-extension)。
Web View打开的页面具有以下JS代码
<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;
alert(psid);
}, function error(err) {
alert("Messenger Extension Error: " + err);
});
};
</script>
结果是一个警告,其中包含以下消息“Messenger Extension Error:2071011”。所以方法“getUserID”出错了。 “2071011”错误代码是什么意思?以及如何解决?我经常搜索,但没有找到任何关于它的信息。
非常感谢任何帮助!!
PS:指南说要将网址列入白名单,我也是这样做的。
答案 0 :(得分:3)
我发现&#34; 2071011&#34; messenger.Extensions.js缩小来源中的错误说明:
if (!p) {
x(2071011, 'JavaScript bridge does not exist - Please make sure you are in latest ' + 'version of Facebook or Messenger App.');
return;
}
p 值等于 q():
function q() {
switch (o) {
case h.ANDROID:
return window._FBExtensions;
case h.IOS:
return window.webkit && window.webkit.messageHandlers;
}
return null;
}
可能的错误原因:
答案 1 :(得分:1)
您是如何尝试打开网页浏览的?我遇到了同样的问题但是信使扩展只能在documentation上在iOS和Android上运行。 此代码适用于iOS,并在桌面信使应用程序上引发相同的错误。我希望这会有所帮助。
答案 2 :(得分:0)
MessengerExtensions.getUserID(function success(uids) {
// triggering on devices
self.defer.resolve(uids.psid);
}, function error(err) {
MessengerExtensions.getContext(config.fbApp.id, function success(result) {
// triggering on desktop
self.defer.resolve(result.psid);
}, function error(result) {
self.defer.reject(result);
console.log('Context Error ', result);
});
});