そこにはクォータがあることがわかります:https://code.google.com/apis/console しかし、これは毎日のクォータです。そして、私は1日に10,000クエリ(礼儀の限界)を参照してください。同じエラーが出るまで、再び170〜190を行いGoogle+ APIには時間制限がありますか?
{
"code" : 403,
"errors" : [ {
"domain" : "usageLimits",
"message" : "Rate Limit Exceeded",
"reason" : "rateLimitExceeded"
} ],
"message" : "Rate Limit Exceeded"
}
1時間の番組の後:それはGoogle +のAPIからのこのような応答を受信した後 は、実は私のプログラムは、時速170〜190の要求を行います。しかし、1時間あたり190回のリクエスト* 24時間は1万回には及ばない。
私はメソッドpeople.searchとgoogle-api-java-clientライブラリバージョン1.15.0-rcを使用しています。以下のような 初期プラスサービス:
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(EMAIL)
.setServiceAccountScopes(Collections.singleton(PlusScopes.PLUS_LOGIN))
.setServiceAccountPrivateKeyFromP12File(KEY_FILE))
.build();
Plus plus = new Plus.Builder(httpTransport, jsonFactory, credential)
.setApplicationName(APP_NAME).build();
そして、このような検索方法を使用します。
Plus.People.Search searchPeople = people.search(fullname);
searchPeople.setMaxResults(50L);
searchPeople.setFields("items(id),nextPageToken");
PeopleFeed peopleFeed = searchPeople.execute();
while (true) {
if (peopleFeed.getItems().size() == 0) {
break;
}
/* Save people info here */
if (peopleFeed.getNextPageToken() == null) {
break;
}
try {
Thread.sleep(500);
} catch (InterruptedException e) { }
searchPeople.setPageToken(peopleFeed.getNextPageToken());
peopleFeed = searchPeople.execute();
}
私は1秒か2秒に睡眠時間を変更しようとした - と同じ動作。 キーファイルを再生成しようとしました - 運はありません。
私は間違ったことをしましたか?
私は同様の解決策を完了しました - 要求の間にほとんど待ちません。これまでのところもっと良い解決策はないようです。 – sil3
次に、彼らはバッチリクエストをなぜ提供していますか?バッチリクエストを行うたびにレート制限があります。 –