Google API PHP クライアント ( http://code.google.com/p/google-api-php-client/ ) を使用して OAuth リクエストを作成し、新しいアクセス トークンを取得します。
リフレッシュ トークンをキャッシュし、これを使用して新しいアクセス トークンを生成します。私はドキュメント(https://developers.google.com/accounts/docs/OAuth2、https://developers.google.com/storage/docs/developer-guide)を調べましたが、更新の制限についてのみ説明していますトークン (クライアント/ユーザーの組み合わせごとに 1 つの制限、およびすべてのクライアントのユーザーごとに別の制限) はありますが、アクセス トークンの制限については何もありません (アクセス トークンが 1 時間のみ有効であるという事実を除いて)。
何千ものバケットにわたってバケット サイズの使用状況を計算しようとしています。時間を短縮するために、このタスクを並列化しようとしています。これを行うには、バケットごとに新しいプロセスを生成し、各プロセスが新しいアクセス トークンを要求します。これは、発行されるアクセス トークンの数に制限がないという前提と、大量のオブジェクトを含むバケットの場合、計算時間 + 潜在的な指数関数的バックオフ時間は、理論的にはアクセス トークンの有効期間を超える可能性があるためです。
しかし、これを実行しようとすると、次のエラーが表示されます。
Error No: 1
Error on Line: 242
Error Message: Uncaught exception 'apiAuthException' with message 'Error refreshing the OAuth2 token, message:
<HTML>
<HEAD>
<TITLE>User Rate Limit Exceeded</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>User Rate Limit Exceeded</H1>
<H2>Error 403</H2>
</BODY>
</HTML>
これは、アクセス トークンを大量 (現時点で 16 個) 生成しているためですか?
そうでない場合、このエラーの原因は何ですか? このエラーを回避する最善の方法は何ですか?
ユーザー レート制限を文書化した Google ドキュメント ページはありますか?