2016-05-06 16 views
0

Ich bekomme 0 als Ergebnis beim Zugriff auf $this->fbconnect->getUser(); in FB Login in OpenCart2.1.x.Warum gibt Facebook PHP SDK getUser immer 0 zurück? Opencart

Unten ist der Code, dass ich verwende:

  • In register Controller, i URL mache wie folgt:

    if(!$this->customer->isLogged()){ 
          if(!isset($this->fbconnect)){    
        require_once(DIR_SYSTEM . 'facebook/facebook.php'); 
        $this->fbconnect = new Facebook(array(
         'appId' => $this->config->get('facebook_apikey'), 
         'secret' => $this->config->get('facebook_apisecret'), 
         'redirect_uri' => $this->url->link('facebook/facebook', '', 'SSL'), 
         'cookie' => true, 
         'domain'=>'abc.com' 
        )); 
        } 
    
        $data['facebook_url'] = $this->fbconnect->getLoginUrl(
        array(
         'scope' => 'public_profile, email', 
         'redirect_uri' => $this->url->link('facebook/facebook', '', 'SSL') 
        ) 
        ); 
    } 
    

und in register.tpl die URL ist in Ordnung und Ich werde zur Authentifizierung auf die FB-Anmeldeseite umgeleitet. aber nach dem Login während der Rückkehr zu meiner Website, bekomme ich 0 für getUser() Funktion.

  • Der Facebook-Controller in catalog/controller/facebook/facebook.php der Code ist wie unten:

    if(!isset($this->fbconnect)){   
        require_once(DIR_SYSTEM . 'facebook/facebook.php'); 
    
        $this->fbconnect = new Facebook(array(
         'appId' => $this->config->get('fbconnect_apikey'), 
         'secret' => $this->config->get('fbconnect_apisecret'), 
         'redirect_uri' => $this->url->link('facebook/facebook', '', 'SSL'), 
        )); 
    } 
    
    $_SERVER_CLEANED = $_SERVER; 
    $_SERVER = $this->clean_decode($_SERVER); 
    
    echo $fbuser = $this->fbconnect->getUser(); **0** 
    

Voll Code finden Sie hier :: Click Here

Meine App-Einstellungen sind:

enter image description here

Hier :: abc.com bedeutet, dass meine tatsächliche Website URL hier ersetzt wird.

Please do not mark this question as DUPLICATE because i have already searched on SO and everywhere and nothing is working here for me. So, please try to give the solution and that is i am posting question after searching for more than 1 day.

+0

Wo Sie die Benutzerdaten abfragen? [Siehe diesen Graph API-Benutzer] (https://developers.facebook.com/docs/graph-api/reference/v2.6/user) – itzmukeshy7

+0

Ich habe nicht bekommen .. können Sie mehr – Gags

+0

Um Daten zu erhalten, müssen Sie zuerst Facebook für diese Daten abfragen; In diesem Fall, wenn Sie versuchen, die ID des Benutzers zu erhalten, müssen Sie zuerst die Benutzerdaten von Facebook abfragen, dann erhalten Sie die ID, die Sie wollen; – itzmukeshy7

Antwort

1

Versuchen Sie dies;)

ersetzen
echo $fbuser = $this->fbconnect->getUser(); 

mit

try { 
    // Returns a `Facebook\FacebookResponse` object 
    $response = $this->fbconnect->get('/me?fields=id,name', '{access-token}'); 
} catch(Facebook\Exceptions\FacebookResponseException $e) { 
    echo 'Graph returned an error: ' . $e->getMessage(); 
    exit; 
} catch(Facebook\Exceptions\FacebookSDKException $e) { 
    echo 'Facebook SDK returned an error: ' . $e->getMessage(); 
    exit; 
} 

$user = $response->getGraphUser(); 

echo 'Id: ' . $user['id']; 
echo 'Name: ' . $user['name']; 
+0

Diese Rückkehr Fataler Fehler: 'Aufruf zu undefined Methode Facebook :: get()' – Gags

+0

Ich replcaed PHP SDK mit PHP 5 SDK und verwendet kombiniert Ansatz für JS und PHP SDK :) – Gags

Verwandte Themen