【问题标题】:Messenger Extensions Javascript SDK Error 2071011Messenger 扩展 Javascript SDK 错误 2071011
【发布时间】:2017-11-02 21:52:18
【问题描述】:

我正在尝试使用 Messenger Extensions Javascript SDK 创建一个 Messenger Web 视图 (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 扩展错误:2071011”。所以方法“getUserID”出错了。 “2071011”错误代码是什么意思?以及如何解决?我已经搜索了很多,但没有找到任何相关信息。

非常感谢任何帮助!

PS:指南说要将 URL 的站点列入白名单,我也这样做了。

【问题讨论】:

  • 遇到同样的问题,感谢发帖
  • 那里发现了同样的问题,有人解决了吗?请帮帮我。
  • 也许我找到了,我错过了按钮中的 ""messenger_extensions": true,"...希望它对你有所帮助
  • 这里也有这个问题。我有“messenger_extensions: true”,我不认为这是问题
  • 对我来说同样的问题......我创建了一个类似的问题:stackoverflow.com/questions/40756447/…

标签: javascript facebook facebook-javascript-sdk facebook-messenger


【解决方案1】:

您是如何尝试打开 web 视图的?我遇到了同样的问题,但是根据documentation,Messenger 扩展只能在 iOS 和 Android 上运行。 此代码在 iOS 上适用于我,并在桌面信使应用程序上引发相同的错误。我希望这会有所帮助。

【讨论】:

  • @harpreetSingh:您使用的是哪个版本的 Messenger 应用程序?是iOS还是安卓?确保它是最新版本。您可以尝试发出警报以检查您的 JS 是否加载。 window.extAsyncInit = function () { alert(""Messenger Extensions JS SDK 加载完成"); // Messenger Extensions JS SDK 加载完成 MessengerExtensions.getUserID(function success(uids) { var psid = uids.psid; alert (psid); }, function error(err) { alert("Messenger 扩展错误: " + err); }); };
  • 我发现它的有效错误和 facebook 团队正在处理它......这里是链接 developers.facebook.com/bugs/1676913532599603
  • 是的,我看到了这个错误。它对我来说工作正常,我可以获得用户详细信息:)
  • 在网站上是什么意思?它适用于最新版本的 iOS 和 Android Messenger,但不适用于我的桌面。
【解决方案2】:

我在messenger.Extensions.js缩小的源代码中找到“2071011”错误解释:

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. 请确保您拥有最新的 Messenger 应用程序版本(在我的情况下不要解决问题)。
  2. 很有可能 Messenger Android 应用程序没有正确地将变量 window._FBExtensions 包含到 WebView 上下文中 - 我未定义此变量,并且 messenger.Extensions.js 假设_FBExtensions 变量已经存在。我目前找不到解决方法,因为它是 Messenger 应用程序的一部分。

【讨论】:

  • window._FBExtensions 添加此变量会使其工作吗?我试过但没有工作。变量的值应该是多少? @temasso
【解决方案3】:
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);
            });
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多