Facebook Messenger Erweiterung Fehler: 2071010

stimmen
1

Ich bin eine chatbot für Messenger-Plattform zu entwickeln NodeJS Einsatz auf Heroku verwenden. Ich versuche, den Benutzer-ID in der Webansicht zu bekommen. Ich habe die messenger-Erweiterungsfeld auf true gesetzt, der weißen Liste meiner Domain, letzte aktualisierte Version Android-App und auch da jetzt WebView den Web-Browser unterstützen, bin ich es auch in Safari-Browser anzeigen.

Der Bote sdk wird geladen perfekt. Ich die Prüfung, ob Browser unterstützt wird oder nicht, die ich als result- bekommen> wahr. Noch bin vor mir Problem, die Benutzer-ID zu bekommen. Mein Code ist:

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

HINWEIS: Ich habe die Lösung für dieses Problem gesucht, aber keiner von ihnen arbeiten, daher bin ich diesen Fehler posten.

Veröffentlicht am 26/08/2017 um 12:51
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Nun, ich lesen Sie die Dokumentation noch einmal. Die Dokumentation sagt, dass die Webansicht für Desktop funktioniert, aber derzeit nicht einige Einschränkungen wie getUserIds unterstützt ().

Ich fand zwei alternative Lösung über gekommen, um das Problem der „psid“ bekommen, die erste ist einfach und Sie können darüber, wie viele Chatbots wie „2k17 Resolutions“ verwenden es sein zu wissen.

1.Adding die „Senderid“ in Ihrem NodeJS App als Parameter an die URL Ihrer Webansicht und dann auf der Seite zu holen selbst. Die „Senderid“ und „psid“ sind gleich.

  1. Erst das psid vom getContext (), indem es von messenger js sdk aufrufen. Das getContext () return 4 Feld in Json-Objekt, das "thread_type", "tid", "psid", "signed_request", wo psid ist ist das, was ich suchte. Im Folgenden finden Sie die komplette Arbeitscode.

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

Und hier ist der Link für Thread - Kontext Dokumentation: https://developers.facebook.com/docs/messenger-platform/webview/context

EDIT: Zwei Tage zurück bekam der Bote einige neue Updates, aus denen eine der neuen Update der Web-Ansicht kompatibel mit allen Browsern machen und damit jetzt getContext () mit jedem Browser funktioniert.

Beantwortet am 26/08/2017 um 14:19
quelle vom benutzer

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