Facebook Messenger Extension Feil: 2071010

stemmer
1

Jeg utvikler en chatbot for messenger plattformen ved hjelp nodejs utplassert på heroku. Jeg prøver å få brukeren id i nettvisnings. Jeg har satt messenger utvidelsesfeltet til sann, hvitelistet mitt domene, ved hjelp av siste oppdaterte versjon android app og også siden nå Webview støtter nettleseren, jeg også ser det i nettleseren Safari.

Messenger SDK lastes perfekt. Jeg sjekken om nettleseren støttes eller ikke som jeg får som resultat-> sant. Likevel er jeg vender problem å få bruker-ID. Koden min er:

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

MERK: Jeg har søkt på løsningen på dette problemet, men ingen av dem fungerer, derfor er jeg legge denne feilen.

Publisert på 26/08/2017 klokken 12:51
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Vel, jeg leste dokumentasjonen igjen. Dokumentasjonen si at nettvisnings for stasjonære verk, men foreløpig ikke støtte noen begrensninger som getUserIds ().

Jeg fant to alternativ løsning å komme over problemet med å få "PSID", er det første en enkel og du kan vite om det som mange chatbots som "2k17 Vedtak" bruker den.

1.Adding de "senderid" i nodejs app som parameter til nettadressen til nettvisning og deretter hente den på selve siden. Den "senderid" og "PSID" er samme.

  1. Å få PSID fra getContext () ved å kalle det fra messenger js SDK. Den getContext () returnere fire felt i JSON-objektet, som er "thread_type", "tid", "PSID", "signed_request" hvor PSID er hva jeg var ute etter. Nedenfor er fullstendig arbeids kode.

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

Og her er linken til tråden sammenheng dokumentasjon: https://developers.facebook.com/docs/messenger-platform/webview/context

EDIT: To dager tilbake messenger fikk noen nye oppdateringer ut som, en av den nye oppdateringen gjør nettet Se kompatibelt med alle nettleseren og dermed nå getContext () arbeider med en hvilken som helst nettleser.

Svarte 26/08/2017 kl. 14:19
kilden bruker

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