我正在運行一個Web應用程序以通過Google API PHP Client Library 2.0.3獲取用戶列表。並將它們保存爲CSV文件,同時我正在屏幕上跟蹤這個過程。我使用的代碼如下:使用Google API的指數退避PHP客戶端庫
$pageToken = null;
$optParams = array(
"customer" => "my_customer",
"maxResults" => 500,
"orderBy" => "email",
"sortOrder" => "ASCENDING"
);
try {
$usernum = 0;
do {
if ($pageToken){
$optParams['pageToken'] = $pageToken;
}
$results = $service->users->listUsers($optParams);
$pageToken = $results->getNextPageToken();
$users = $results->getUsers();
foreach ($users as $user) {
$usernum++;
$csvfileusers = array($user->getPrimaryEmail());
fputcsv($savecsv, $csvfileusers);
$usersemails = $user->getPrimaryEmail();
print "<li>".$usernum." - <font color='#9dd7fb'>".$usersemails."</font></li>";
}
} while($pageToken);
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
一切工作正常。問題是,我不時得到{ error: { errors: [ { domain: global, reason: backendError, message: Service unavailable. Please try again } ], code: 503, message: Service unavailable. Please try again } }
我知道這意味着我發送請求到Google Server太快,因此我需要實施指數退避解決方案。我的問題是我不知道該怎麼做。有人會提供一個關於如何使用PHP客戶端庫的例子嗎?我知道我可以從長遠的角度弄清楚,但如果我能得到一些幫助,我將不勝感激。
是否阻止應用程序? – arecaps
@arecaps不像我擔心的那樣。或者「阻止應用程序」是什麼意思? – Morfinismo