Messenger Extensions Javascript SDK Error 2071011

邮差的信 提交于 2020-01-12 02:26:51

问题


I'm trying to create a Messenger Web View (https://developers.facebook.com/docs/messenger-platform/messenger-extension) by using the Messenger Extensions Javascript SDK.

The page opened by the Web View has the following JS code

<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>  

And the result is an Alert with the following message "Messenger Extension Error: 2071011". So the method "getUserID" goes in error. What "2071011" error code means? And how to solve it? I've searched a lot but nothing has been found about it.

Any help is really appreciated!!

PS: the guide says to whitelist the site of the URL and I've done that too.


回答1:


How are you trying to open the webview? I was facing the same issue but then messenger extensions only work on iOS and Android as per the documentation. This code works for me on iOS and throws the same error on desktop messenger app. I hope this helps.




回答2:


I found "2071011" error explanation in messenger.Extensions.js minified source:

if (!p) {
    x(2071011, 'JavaScript bridge does not exist - Please make sure you are in latest ' + 'version of Facebook or Messenger App.');
    return;
}

p value equals q():

function q() {
    switch (o) {
        case h.ANDROID:
            return window._FBExtensions;
        case h.IOS:
            return window.webkit && window.webkit.messageHandlers;
    }
    return null;

}

Possible error causes:

  1. Please ensure you have the newest Messenger App version (do not resolve problem in my case).
  2. It is highly possible that Messenger Android app do not include variable window._FBExtensions into WebView context properly - I have this variable undefined and messenger.Extensions.js assumes that _FBExtensions variable already exists. I can't found currently workaround for this as it is Messenger App part.



回答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);
            });
        });


来源:https://stackoverflow.com/questions/40490441/messenger-extensions-javascript-sdk-error-2071011

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!