Коммуникатор Расширение facebook Ошибка: 2071010

голоса
1

Я разрабатываю Chatbot для мессенджера платформы, используя nodejs развернутого на Heroku. Я пытаюсь получить идентификатор пользователя в WebView. Я установил поле расширения мессенджера истинно, белый список мой домен, используя последнее обновление версии Android App, а также, поскольку в настоящее время WebView поддерживает веб-браузер, я также его просмотра в браузере сафари.

Мессенджер SDK загружается отлично. Я проверка, поддерживаются ли браузер или нет, которые я получаю, как result-> правды. Тем не менее я перед проблемой получения идентификатора пользователя. Мой код:

<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 = https://connect.facebook.com/en_US/messenger.Extensions.js;
          fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'Messenger'));

        window.extAsyncInit = function () {
            var isSupported = MessengerExtensions.isInExtension(); 
            alert(isSupported);
            // 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>

Примечание: Я искал решение этой проблемы, но ни один из них не работает, поэтому я опубликовать эту ошибку.

Задан 26/08/2017 в 12:51
источник пользователем
На других языках...                            


1 ответов

голоса
1

Ну, я прочитал документацию еще раз. Документация говорят, что WebView для настольных работ, но в настоящее время не поддерживает некоторые оговорки, как getUserIds ().

Я нашел два альтернативных решения для более приходят проблему получения «PSID», то первый из них является простым и вы могли бы знать о нем как можно больше chatbots как «2k17 Резолюции» используют его.

1.Adding в «SenderID» в вашем nodejs приложение в качестве параметра адрес вашего WebView, а затем извлечения его на самой странице. В «SenderID» и «PSID» одинаковы.

  1. Получение PSID от getContext (), вызвав его из мессенджера JS SDK. GetContext () возвращает 4 поле в объекте JSon, которые являются "thread_type", "TID", "PSID", "signed_request", где PSID то, что я искал. Ниже приводится полный рабочий код.

    <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 = "https://connect.facebook.com/en_US/messenger.Extensions.js";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'Messenger'));
        window.extAsyncInit = function () {
            var isSupported = MessengerExtensions.isInExtension(); 
            alert(isSupported);
            // the Messenger Extensions JS SDK is done loading
            MessengerExtensions.getContext('YOU_APP_ID', 
              function success(result){
                alert("Success: "+result.psid);
              },
              function error(result){
                alert(JSON.stringify(result));
              }
            );
        };
    </script>
    

А вот ссылка на тему контекстной документации: https://developers.facebook.com/docs/messenger-platform/webview/context

EDIT: Два дня назад посланник получил несколько новых обновлений, из которых, один из новых обновлений сделать веб-вид совместит со всем браузером и, следовательно, теперь getContext () работают с любым браузером.

Ответил 26/08/2017 в 14:19
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more