Facebook Messenger Uitbreiding Fout: 2071010

stemmen
1

Ik ben het ontwikkelen van een chatbot voor messenger platform met behulp van NodeJS ingezet op Heroku. Ik ben op zoek naar de gebruikers-ID in de webview krijgen. Ik heb de extensie veld boodschapper ingesteld op true, whitelisted mijn domein, met de nieuwste bijgewerkte versie android app en ook omdat nu WebView ondersteuning voor de web browser, ik ben ook u het op Safari-browser.

De boodschapper sdk wordt geladen perfect. Ik kan de controle of browser niet wordt ondersteund, of die ik krijg als resultaat-> true. Toch ben ik geconfronteerd probleem om de gebruikers-ID. Mijn code is:

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

LET OP: Ik heb de oplossing voor dit probleem gezocht, maar geen van hen het werk, dus ik ben posten deze fout.

De vraag is gesteld op 26/08/2017 om 12:51
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Nou, ik lees de documentatie opnieuw. De documentatie zeggen dat de webview voor desktop werkt, maar op dit moment niet ondersteunt echter wel enkele voorwaarden zoals getUserIds ().

Ik vond twee alternatieve oplossing te komen over het probleem van het verkrijgen van de "psid", de eerste is eenvoudig en dat u misschien wel weet van heeft evenveel chatbots als "2k17 Resoluties" gebruikt.

1.Adding de "SenderID" in uw NodeJS app als parameter aan de URL van uw webview en vervolgens wordt opgehaald op de pagina zelf. De "SenderID" en "psid" zijn hetzelfde.

  1. Haal het psid uit de getContext () door te bellen naar het van boodschapper js sdk. De getContext () terug met 4 velden in JSON-object, dat "thread_type" zijn, "tid", "psid", "signed_request", waar psid is wat ik zocht. Hieronder vindt u de volledige werkende code.

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

En hier is de link voor Thread context documentatie: https://developers.facebook.com/docs/messenger-platform/webview/context

EDIT: Twee dagen terug de boodschapper kreeg paar nieuwe updates uit die, één van de nieuwe update van de web view compatibel met alle browser en dus nu getContext () werkt samen met elke browser te maken.

antwoordde op 26/08/2017 om 14:19
bron van user

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