2014-01-26 4 views
0

Я использую следующий код, чтобы получить список пользователей, связанных с моей учетной записью Google Apps. Нет проблем с аутентификацией, но когда перенаправление вызвало эту ошибку.Google Admin SDK в PHP

index.php

<?php 
require_once 'test_user/src/Google_Client.php'; 
require_once 'test_user/src/contrib/Google_PlusService.php'; 
require_once 'test_user/src/contrib/Google_Oauth2Service.php'; 
require_once 'test_user/src/contrib/Google_DirectoryService.php'; 

session_start(); 

$client = new Google_Client(); 
$client->setApplicationName("ApplicationName"); 

//*********** Replace with Your API Credentials ************** 
$client->setClientId('****'); 
$client->setClientSecret('****'); 
$client->setRedirectUri('****'); 
$client->setDeveloperKey('****'); 
//************************************************************ 


$client->setScopes(array('https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/admin.directory.user.readonly')); 
$plus = new Google_PlusService($client); 
$oauth2 = new Google_Oauth2Service($client); // Call the OAuth2 class for get email address 
$adminService = new Google_DirectoryService($client); // Call directory API 

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

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

if ($client->getAccessToken()) 
{ 
    $user = $oauth2->userinfo->get(); 
    $me = $plus->people->get('me'); 
    $email = filter_var($user['email'], FILTER_SANITIZE_EMAIL); // get the USER EMAIL ADDRESS using OAuth2 

    $optParams = array('maxResults' => 100); 
    $activities = $plus->activities->listActivities('me', 'public', $optParams); 
    //$users = $adminService->users->get($email); 

    $list_users = $adminService->users->listUsers(); 
    print '<h2>Response Result:</h2><pre>' . print_r($list_users, true) . '</pre>'; 
    $_SESSION['access_token'] = $client->getAccessToken(); 
} 
else 
{ 
    $authUrl = $client->createAuthUrl(); 
    header("location:$authUrl"); 
} 
?>  

ошибки я получаю:

Fatal error: Uncaught exception 'Google_ServiceException' with message 'Error calling 
GET https://www.googleapis.com/admin/directory/v1/users? 
key=AIzaSyBp0yBFCCosu113tbNbw7yAIjIt1ndFFIs: (400) Bad Request' in 
/var/www/vhosts/vx44.com/httpdocs/test_user/src/io/Google_REST.php:66 Stack trace: #0 
/var/www/vhosts/vx44.com/httpdocs/test_user/src/io/Google_REST.php(36): 
Google_REST::decodeHttpResponse(Object(Google_HttpRequest)) #1 
/var/www/vhosts/vx44.com/httpdocs/test_user/src/service/Google_ServiceResource.php(186):  
Google_REST::execute(Object(Google_HttpRequest)) #2 
/var/www/vhosts/vx44.com/httpdocs/test_user/src/contrib/Google_DirectoryService.php(695):  
Google_ServiceResource->__call('list', Array) #3   
/var/www/vhosts/vx44.com/httpdocs/test_user/test_user.php(52): 
Google_UsersServiceResource->listUsers('nelson302.com') #4 {main} thrown in/var/www/vhosts/vx44.com/httpdocs/test_user/src/io/Google_REST.php on line 66  

Обратите внимание, что я уже включен Admin SDK на консоли API Google.

Что я здесь делаю неправильно? спасибо за помощь

ответ

Смежные вопросы