2017-10-21 83 views
0

J'essaye d'implémenter la connexion facebook sur mon site, mais je suis coincé ici. J'ai besoin de l'email de l'utilisateur. Je demande des autorisations. Si les autorisations sont accordées, tout va bien. Si le bouton "Not Now" (autorisations refusées) est pressé et qu'il tente de se connecter à nouveau sur le site, la fenêtre contextuelle des permissions n'apparaîtra plus. Comment afficher le "pop-up" à nouveau pour les utilisateurs qui n'ont pas accepté les autorisations? Merci!Facebook Autorisation de connexion refusée

<?php 
if(!isset($_SESSION)) 
    { 
     session_start(); 
    } 
?> 

<?php 
require_once '/autoload.php'; 
use Facebook\FacebookSession; 
use Facebook\FacebookRedirectLoginHelper; 
use Facebook\FacebookRequest; 
use Facebook\FacebookResponse; 
use Facebook\FacebookSDKException; 
use Facebook\FacebookRequestException; 
use Facebook\FacebookAuthorizationException; 
use Facebook\GraphObject; 
use Facebook\Entities\AccessToken; 
use Facebook\HttpClients\FacebookCurlHttpClient; 
use Facebook\HttpClients\FacebookHttpable; 
// start session 

// init app with app id and secret 
FacebookSession::setDefaultApplication('12345','12345'); 

// login helper with redirect_uri 

    $helper = new FacebookRedirectLoginHelper('urlcallback'); 
try { 
    $session = $helper->getSessionFromRedirect(); 
} catch(FacebookRequestException $ex) { 
    // When Facebook returns an error 
} catch(Exception $ex) { 
    // When validation fails or other local issues 
} 

// see if we have a session 
if (isset($session)) { 
    // graph api request for user data 
    $request = new FacebookRequest($session, 'GET', '/me?fields=name,email'); 
    $response = $request->execute(); 
    // get response 
    $graphObject = $response->getGraphObject(); 

     $fbid = $graphObject->getProperty('id');    // To Get Facebook ID 
     $fbuname = $graphObject->getProperty('username'); // To Get Facebook Username 
     $fbfullname = $graphObject->getProperty('name'); // To Get Facebook full name 
     $femail = $graphObject->getProperty('email'); // To Get Facebook email ID 
    /* ---- Session Variables -----*/ 
     $_SESSION['FBID'] = $fbid;   
     $_SESSION['USERNAME'] = $fbuname; 
     $_SESSION['FULLNAME'] = $fbfullname; 
     $_SESSION['EMAIL'] = $femail; 
    echo '<pre>' . print_r($graphObject, 1) . '</pre>'; 
    //echo 'email:'.$femail; 
} else { 
    // show login url 
    echo '<a href="' . $helper->getLoginUrl(array('scope'=>'public_profile,email,user_friends')) . '">Login</a>'; 
} 

?> 

Répondre

0

Solution ajouter dans la fonction publique getLoginUrl:

$params['auth_type'] = 'rerequest';