sil*_*il3 6 java api google-plus
我知道那里有配额:https://code.google.com/apis/console 但这些是每日配额.在那里,我每天看到10,000个查询(Courtesy Limit).实际上,我的程序在收到Google+ API的响应后,每小时会收到170-190个请求:
{
"code" : 403,
"errors" : [ {
"domain" : "usageLimits",
"message" : "Rate Limit Exceeded",
"reason" : "rateLimitExceeded"
} ],
"message" : "Rate Limit Exceeded"
}
Run Code Online (Sandbox Code Playgroud)
1小时后程序再次执行170-190直到得到相同的错误.但每小时190个请求*24小时远远不是10,000个.
我正在使用方法people.search和google-api-java-client库版本1.15.0-rc.Initialize Plus服务如下:
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();
Run Code Online (Sandbox Code Playgroud)
并使用这样的搜索方法:
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();
}
Run Code Online (Sandbox Code Playgroud)
我试图将睡眠时间改为1秒或2秒 - 同样的行为.试图重新生成密钥文件 - 没有运气.
我做错了吗?
问题有三个:
因此,我让我的应用程序等待rand(1,5)几秒钟,如果它们再次受到速率限制,我会等待3600几秒钟再重试.
| 归档时间: |
|
| 查看次数: |
4054 次 |
| 最近记录: |