Autor Zpráva
Misha
Profil *
Ahoj, řeším na web přihlašování pomocí Facebooku. Nechci tam standardní FB button, ale vlastní tlačítko. Mám připravený takovýto script:
<script>
window.fbAsyncInit = function() {
      FB.init({
        appId      : '1415063782049794', // App ID
        channelUrl : '//www.vinostyl.cz/channel.php', // Soubor kanálu
        status     : true, // kontrolovat status přihlášení?
        cookie     : true, // zapnout cookies pro umožnění práce se sessions
        xfbml      : true  // parsovat XFBML tagy na stránce
      });
    };

    // Load the SDK asynchronously
    (function(d){
       var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
       if (d.getElementById(id)) {return;}
       js = d.createElement('script'); js.id = id; js.async = true;
       js.src = "//connect.facebook.net/cs_CZ/all.js";
       ref.parentNode.insertBefore(js, ref);
     }(document));
       
    FB.getLoginStatus(function(response) {
      if (response.status === 'connected') {
        // uživatel je stále přihlášený
        var uid = response.authResponse.userID;
        var accessToken = response.authResponse.accessToken;            
    
      } else if (response.status === 'not_authorized') {
        // užívateľ zrušil autorizáciu našej aplikácii, tým pádom by sme ho asi mali kopnúť do zadnice, či?
        alert("zrušená autorizace");
      } else {
        // užívateľ vôbec nie je prihlásený... čo s ním?
        alert("nepřihlášený uživatel");
      }
    });
    
     function initFBlogin() {
       FB.login(function(response) {
         if (response.authResponse) {
           FB.api('/me', function(response) {

             // po prihlásení potrebujeme údaje pre overenie užívateľa
             $.ajax({
                url: '/prihlaseni_fb.php',
                data: response,
                type: 'post',
                dataType: 'json',
                success: function(res) {
                   // do res si posielame json data pre lepšiu prácu so systémom.
                   if(res.action == 'refresh') {
                     // v pripade, ze staci obnovit aktualnu stranku
                     top.location.reload();
                   }
                   if(res.action == 'redirect') {
                     // v pripade, ze by sme chceli uzivatela presmerovat na nejaky doplnujuci form
                     top.location.replace(res.redirto);
                   }
                   if(res.action == 'false') {
                     // v pripade, ze by nieco prdne {connect na db a pod}
                     alert(res.message);
                   }
                 }
             });
      
           });
         } else {
           console.log('Uživatel zrušil přihlášení.');
         }
       }, {scope: 'email,user_birthday,user_hometown,user_location,publish_stream,read_friendlists'}); 
     }
</script>

jenže problém je v tom, že script odesílá prázdný Token. Respektive obsah $_POST['authResponse']['accessToken'] je prázdný, takže se přihlášení nezdaří. Nevíte někdo co s tím?


Ještě jsem zapoměl přidat odkaz na živou ukázku: http://www.vinostyl.cz/prihlaseni/
Misha
Profil *
Jsou to scripty z tohohle tutorialu a stejný dotaz už tam v diskuzi padl, ovšem řešení jsem nepochopil. Dokázal by mě někdo popošťouchnout?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: