2016-05-29 110 views
0

我對使用PHP客戶端庫1.1.7的Google API進行編程相對較新。目前,我想要獲得理想的域名,我用做它的代碼內的所有用戶的列表如下:使用PHP客戶端庫獲取Google Apps帳戶的所有用戶

$service = new Google_Service_Directory($client); 

$optParams = array(
    'customer' => 'my_customer', 
    'maxResults' => 500, 
    'orderBy' => 'email', 
    ); 

$results = $service->users->listUsers($optParams); 
$users = $results->getUsers(); 

    foreach($users as $user) { 
    $usersemails = $user->getPrimaryEmail(); 
    echo $usersemails.'<br>'; 
    } 

的問題是,當我使用這個代碼,我只能得到一個最大的500位用戶。我搞清楚,我要使用的下一個頁面標記所以我嘗試使用此代碼:

$service = new Google_Service_Directory($client); 

$optParams = array(
    'customer' => 'my_customer', 
    'maxResults' => 500, 
    'orderBy' => 'email', 
    'pageToken' => NULL, 
); 

$results = $service->users->listUsers($optParams); 
$pageToken = $results->getNextPageToken(); 
$users = $results->getUsers(); 

while($pageToken); 

    foreach($users as $user) { 
    $usersemails = $user->getPrimaryEmail(); 
    echo $usersemails.'<br>'; 
} 

現在,當我嘗試使用此代碼我收到上寫着以下瀏覽器的屏幕:「 504網關超時,服務器沒有及時響應。「

有沒有我正在使用的代碼有問題,或者這是我使用的服務器的問題?任何有關這個問題的見解將不勝感激。提前致謝。

回答

0

經過多次檢查,我發現問題在於我沒有正確編寫代碼。我修改了我的代碼,現在它工作正常。如果有其他人遇到同樣的問題,這可能會有所幫助。這是最終代碼:

$service = new Google_Service_Directory($client); 

$pageToken = NULL; 
$optParams = array(
    'customer' => 'my_customer' 
); 

try { 
    do { 
    if ($pageToken){ 
    $optParams['pageToken'] = $pageToken; 
    } 

$results = $service->users->listUsers($optParams); 
$pageToken = $results->getNextPageToken(); 
$users = $results->getUsers(); 

foreach($users as $user) { 
    $usersemails = $user->getPrimaryEmail(); 
    echo $usersemails.'<br>'; 
} 

} while($pageToken); 

} catch (Exception $e) { 
    print 'An error occurred: ' . $e->getMessage(); 
} 
相關問題