Расширения Messenger Javascript SDK Ошибка 2071011

Я пытаюсь создать веб-представление Messenger (https://developers.facebook.com/docs/messenger-platform/messenger-extension) с помощью SDK Messenger Extensions Javascript.

Страница, открытая веб-представлением, имеет следующий код 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 в белый список, и я тоже это сделал.


person dafian    schedule 08.11.2016    source источник
comment
точно такая же проблема спасибо за пост   -  person younglion    schedule 11.11.2016
comment
Там такая же проблема, кто-нибудь решил? Помогите пожалуйста мне.   -  person Zahid Rahman    schedule 12.11.2016
comment
Может быть, я нашел это, мне не хватало messenger_extensions: правда, в кнопке... надеюсь, это поможет вам   -  person dafian    schedule 13.11.2016
comment
Также есть эта проблема здесь. У меня messenger_extensions: правда, я не думаю, что это проблема   -  person echan00    schedule 16.11.2016
comment
У меня та же проблема... Я создал аналогичный вопрос: stackoverflow.com/questions/40756447/   -  person sebastienbarbier    schedule 23.11.2016
comment
В моем случае он отлично работает в мобильном приложении. Но не работает на настольном веб-сайте   -  person Gijo Varghese    schedule 03.08.2017


Ответы (2)


Как вы пытаетесь открыть веб-просмотр? Я столкнулся с той же проблемой, но тогда расширения мессенджера работают только на iOS и Android в соответствии с документация. Этот код работает для меня на iOS и выдает ту же ошибку в настольном приложении для обмена сообщениями. Надеюсь, это поможет.

person hudibaba    schedule 18.11.2016
comment
@harpreetSingh: какую версию мессенджера ты используешь? Это iOS или андроид? Убедитесь, что это последняя версия. И вы можете попробовать оповещение, чтобы проверить, загружается ли ваш JS. window.extAsyncInit = function () { alert(Messenger Extensions JS SDK завершена загрузка); // SDK Messenger Extensions JS загружается MessengerExtensions.getUserID(function success(uids) { var psid = uids.psid; alert(psid); }, function error(err) { alert(Messenger Extension Error: + err); }); }; - person hudibaba; 25.11.2016
comment
Я обнаружил, что это действительная ошибка, и команда Facebook работает над ней..... вот ссылка разработчики .facebook.com/bugs/1676913532599603 - person harpreetSingh; 25.11.2016
comment
Да, я видел баг. У меня все работает нормально, и я могу получить данные пользователя :) - person hudibaba; 25.11.2016
comment
Что вы имеете в виду под веб-сайтом? Он работает в мессенджерах iOS и Android с последней версией, но не работает на моем рабочем столе. - person hudibaba; 28.03.2018

Я нашел объяснение ошибки «2071011» в 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. Убедитесь, что у вас установлена ​​самая новая версия приложения Messenger (в моем случае проблема не решается).
  2. Вполне возможно, что Android-приложение Messenger неправильно включает переменную window._FBExtensions в контекст WebView — у меня эта переменная не определена, а messenger.Extensions.js предполагает, что Переменная _FBExtensions уже существует. В настоящее время я не могу найти обходной путь для этого, так как это часть приложения Messenger.
person temasso    schedule 24.11.2016
comment
window._FBExtensions добавление этой переменной заставит ее работать? Я пытался, но не работал. Каким должно быть значение переменной? @темассо - person Gijo Varghese; 04.08.2017