2017-10-21 8 views
0

Ich versuche, Facebook-Login auf meiner Website zu implementieren, aber ich stecke hier fest. Ich brauche die E-Mail des Benutzers. Ich frage nach Berechtigungen. Wenn die gewährten Berechtigungen alles in Ordnung sind. Wenn die Schaltfläche "Not Now" (Berechtigungen verweigert) gedrückt wird und er sich erneut auf der Site anmeldet, wird das Berechtigungs-Popup nicht mehr angezeigt. Wie zeige ich das "Pop-up" wieder für Benutzer, die die Berechtigungen nicht akzeptiert haben? Danke!Facebook Login-Berechtigung verweigert

<?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>'; 
} 

?> 

Antwort

0

Lösung in public function getLoginUrl hinzufügen:

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