2016-05-06 2 views
0

Я получаю 0 в результате при обращении к $this->fbconnect->getUser(); в FB логин в OpenCart2.1.x.Почему PHP PHP SDK getUser всегда возвращает 0? Opencart

Ниже приведен код, который я использую:

  • В register контроллер, я делаю URL, как показано ниже:

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

и register.tpl URL-адрес является штраф и Я перенаправляюсь на страницу входа в FB для аутентификации. но после входа в систему, возвращаясь на мой сайт, я получаю 0 для функции getUser().

  • Facebook контроллер в catalog/controller/facebook/facebook.php код, как показано ниже:

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

Полный код можно найти здесь :: Настройки Click Here

My App являются:

enter image description here

Здесь: abc.com означает, что мой фактический URL-адрес сайта будет заменен здесь.

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

Где вы запрашиваете данные пользователя? [см. этот пользователь API Графика] (https://developers.facebook.com/docs/graph-api/reference/v2.6/user) – itzmukeshy7

+0

Я не получил .. вы можете объяснить больше – Gags

+0

Чтобы получить данные, которые вам в первую очередь нужны запросить facebook для этих данных; В этом случае, когда вы пытаетесь получить идентификатор пользователя, сначала нужно запросить данные пользователя из facebook, после чего вы получите нужный идентификатор; – itzmukeshy7

ответ

1

Попробуйте это;)

Заменить

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

с

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

Это возвращение Фатальная ошибка: 'Вызов неопределенного метода Facebook :: get()' – Gags

+0

i replcaed PHP SDK с PHP 5 SDK и используется в сочетании подход для JS и PHP SDK :) – Gags