首页 > 解决方案 > Google 自定义搜索 API:已超出未经验证使用的每日限制。继续使用需要注册

问题描述

Google 自定义搜索 API 拒绝了我的请求,说我超出了限制。他们的限制是每天 100 个请求,但我还没有提出任何成功的请求,我总共只提出了大约 5 个请求。

我正在创建一个 Java 应用程序以使用 Google CustomSearch API 使用我的 CustomSearch API 密钥进行搜索。

import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.customsearch.Customsearch;
import com.google.api.services.customsearch.model.Result;    

public class SearchBuilder {
public SearchBuilder() {
            search = new Customsearch.Builder(new NetHttpTransport(), new JacksonFactory(), null)               .setApplicationName("MyApp").build();
    }

    public List<Result> search(String query) throws IOException {         
        return search(query,100);
    }
}

我尝试刷新 API 密钥,确保在 API 控制台上启用它,但仍然没有运气。

使用我的 API 密钥运行此代码会导致以下异常:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "usageLimits",
    "message" : "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
    "reason" : "dailyLimitExceededUnreg",
    "extendedHelp" : "https://code.google.com/apis/console"
  } ],
  "message" : "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}

我认为代码不是问题,因为普通的 GET 请求和 Java 代码都返回相同的 JSON 消息,理由是超出了我的限制。

它说继续使用需要注册,但我不确定这意味着什么——我已经注册了一个 API 密钥。

标签: javaapigoogle-custom-search

解决方案


问题我的 Java 代码,我认为我没有在我的代码中正确添加凭据。结果我的 GET 请求也出现了错误。

运行编辑后的 ​​Google 示例会返回预期的 JSON 搜索结果:

curl -l GET 'https://www.googleapis.com/customsearch/v1?key=MY_API_KEY&cx=017576662512468239146:omuauf_lfve&q=lectures'

推荐阅读