2012-06-29 3 views
0

Вот как я код для аутентификации пользователя с Google и отображения основных вещей.401 неверные учетные данные с oauth 2.0 google + api, бросание apiServiceException..почему так ..?

Получение ошибки во время идентифицировать пользователя с помощью Google

Ошибка: недействительные учетные данные с помощью OAuth 2.0 Google + API, бросая apiServiceException

Это мой код:

<?php 
require_once 'google-api-php-client/src/apiClient.php'; 
require_once 'google-api-php-client/src/contrib/apiPlusService.php'; 
require_once 'google-api-php-client/src/contrib/apiOauth2Service.php'; 

session_start(); 

$client = new apiClient(); 

$client->setApplicationName('demo'); 
$client->setClientId('asd6354egfdgtdewd'); 
$client->setClientSecret('-ooRVhB5nbdsfisfgf7s6fsfsfj'); 
$client->setRedirectUri('http://demo.com'); 
$client->setDeveloperKey('HGFHJVhjb894rbbvjhdfjdsvkbdvdv'); 

$client->setScopes(array('https://www.googleapis.com/auth/plus.me', 
          'https://www.googleapis.com/auth/userinfo.email')); 

$plus = new apiPlusService($client); 
$oauth2 = new apiOauth2Service($client); 

if (isset($_REQUEST['logout'])) 
{ 
    unset($_SESSION['access_token']); 
} 

if (isset($_GET['code'])) 
{ 
    $client->authenticate(); 
    $_SESSION['access_token'] = $client->getAccessToken(); 
    header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); 
      # FIXME Is exit() missing? 
} 

if (isset($_SESSION['access_token'])) 
{ 
    $client->setAccessToken($_SESSION['access_token']); 
} 

if ($client->getAccessToken()) 
{ 
     $me = $plus->people->get('me'); 
     $user = $oauth2->userinfo->get(); 

      $email = filter_var($user['email'], FILTER_SANITIZE_EMAIL); 

      $optParams = array('maxResults' => 100); 
     $activities = $plus->activities->listActivities('me', 'public',$optParams); 

     $_SESSION['access_token'] = $client->getAccessToken(); 

    } else { 

      $authUrl = $client->createAuthUrl(); 

} 
+0

вы можете протестировать все конфиги на игровой площадке google oauth ... https://code.google.com/oauthplayground/ – Hardik

+0

будет ли вы направлять меня на тестирование в игровой площадке oauth .. ??? Ват делать на втором этапе .. ???? – mkat

+0

его довольно просто. просто выберите услугу, с которой вы хотите играть, с левой стороны и prace авторизуйте кнопку приложения, а затем ее wizrd, как ... – Hardik

ответ

0

У вас есть для вызова функции setAccessToken($token) непосредственно перед вызовом $plus->people->get('me') и $user = $oauth2->userinfo->get().