Facebook Messenger Extension Error: 2071010

hlasů
1

Jsem rozvoj Chatbot pro zasílání zpráv platformu pomocí nodejs nasazených na Heroku. Snažím se získat ID uživatele v WebView. Nastavil jsem rozšíření pole messenger true, whitelisted svou doménu s použitím nejnovější aktualizovanou verzi aplikaci pro Android, a také protože teď Webview podporu webového prohlížeče, i já ho vidíte v prohlížeči Safari.

Posel SDK se načítá dokonale. I kontrola, zda prohlížeč je podporován, či nikoli, které jsem si jako na výsledky> true. Stále jsem čelí problému získání ID uživatele. Můj kód je:

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

Poznámka: jsem hledal řešení tohoto problému, ale žádný z nich pracuje, a proto jsem tento post chybu.

Položena 26/08/2017 v 12:51
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

No, četl jsem v dokumentaci znovu. Dokumentace tvrdí, že WebView pro stolní funguje, ale v současné době neposkytuje podporu některých avíza jako getUserIds ().

Zjistil jsem dvě alternativní řešení pro více než přijít tento problém, jak se dostat na „PSID“, první z nich je jednoduchá a můžete se o tom věděli tolik chatbots jako „2k17 předsevzetí“ ji využívají.

1.Adding na „SenderID“ ve svém nodejs aplikace jako parametr URL vašeho WebView a načítání je na samotné stránce. Dále jen „SenderID“ a „psid“ jsou stejné.

  1. Získání PSID z getContext () tím, že ho volá z messenger js SDK. GetContext () return 4 pole v JSON objektu, které jsou "thread_type", "tid", "psid", "signed_request", kde psid je to, co jsem hledal. Níže je uveden úplný pracovní kód.

    <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 tady je odkaz pro místní dokumentace Závit: https://developers.facebook.com/docs/messenger-platform/webview/context

EDIT: Dva dny zpátky posel dostal několik nových aktualizací z nichž jedno nové aktualizace, aby se web pohled kompatibilní se všemi prohlížeči a proto nyní getContext () pracuje s jakýmkoliv prohlížeči.

Odpovězeno 26/08/2017 v 14:19
zdroj uživatelem

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