Facebook Messenger Extension Błąd: 2071010

głosy
1

Zajmuję chatbot na platformie messenger korzystając nodejs rozmieszczonych na Heroku. Próbuję uzyskać identyfikator użytkownika w WebView. Mam ustawić pole przedłużacza messenger true whitelisted moją domenę, wykorzystując najnowsze wersje Android App, a także od teraz Webview obsługuje przeglądarkę internetową, ja też oglądania go w przeglądarce Safari.

Posłaniec SDK jest doskonale ładowania. I sprawdzić, czy przeglądarka jest obsługiwany lub nie, które mam jako result-> true. Nadal jestem w obliczu problemu uzyskanie identyfikatora użytkownika. Moje kodu jest:

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

UWAGA: Szukałem rozwiązania tego problemu, ale żaden z nich nie działa, stąd jestem pisać ten błąd.

Utwórz 26/08/2017 o 12:51
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Cóż, po raz kolejny przeczytać dokumentację. Dokumentacja powiedzieć, że WebView do prac stacjonarnych, ale obecnie nie obsługuje pewne zastrzeżenia jak getUserIds ().

Znalazłem dwa alternatywne rozwiązania do ponad pochodzić problem coraz „PSID”, pierwszy z nich jest prosta i może być wiedząc o tym, jak wiele chatboty jak „2k17 Uchwały” jest on używany.

1.Adding z „Sender” w nodejs aplikacji jako parametr do adresu URL swojej WebView a następnie ściągam go na samej stronie. W „Sender” i „PSID” są takie same.

  1. Pierwsze PSID z getContext () przez wywołanie go z messenger js SDK. GetContext () return 4 pola w obiekcie json, które są "thread_type", "tid", "PSID", "signed_request" gdzie PSID jest to, czego szukałem. Poniżej znajduje się pełny kod roboczego.

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

A tu jest link do wątku dokumentacji kontekstowego: https://developers.facebook.com/docs/messenger-platform/webview/context

EDIT: Dwa dni z powrotem posłaniec dostał kilka nowych aktualizacji, z czego jeden z nowych aktualizacji sprawiają, że widok WWW zgodne ze wszystkimi przeglądarki i stąd teraz getContext () działa w każdej przeglądarce.

Odpowiedział 26/08/2017 o 14:19
źródło użytkownik

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