gpt4 book ai didi

java - Google+ API 是否有每小时费率限制?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:02:16 27 4
gpt4 key购买 nike

我知道那里有配额:https://code.google.com/apis/console但这些是每日配额。我每天看到 10,000 个查询(礼貌限制)。实际上,我的程序在收到来自 Google+ API 的此类响应后每小时发出 170-190 个请求:

{
"code" : 403,
"errors" : [ {
"domain" : "usageLimits",
"message" : "Rate Limit Exceeded",
"reason" : "rateLimitExceeded"
} ],
"message" : "Rate Limit Exceeded"
}

1 小时后程序再次执行 170-190 直到出现同样的错误。但是每小时 190 个请求 * 24 小时远不是 10,000。

我正在使用方法 people.search 和 google-api-java-client 库版本 1.15.0-rc。像下面这样初始化 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();

然后使用这样的搜索方法:

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();
}

我尝试将 sleep 时间更改为 1 秒或 2 秒 - 同样的行为。尝试重新生成 key 文件 - 失败。

我做错了什么吗?

最佳答案

问题有三方面:

  1. 速率限制为每天 (10,000) 和每秒 (5)。
  2. 错误消息在类型之间共享。
  3. 没有提供到下一个窗口的时间。

因此,我让我的应用程序等待 rand(1,5) 秒,如果它们再次受到速率限制,我会等待 3600 秒,然后重试。

关于java - Google+ API 是否有每小时费率限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18274136/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com