Google自定义搜索API:超出了未经身份验证的使用的每日限制。继续使用需要注册

时间:2019-01-09 19:36:10

标签: java api google-custom-search

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密钥。

2 个答案:

答案 0 :(得分:1)

问题是我的Java代码,我认为我没有在代码中正确添加凭据。原来我也是在畸形我的GET请求。

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

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

答案 1 :(得分:-1)

一个请求不必“成功”即可被计算到最大数量。在Google看来,这是一个成功的请求。您只是没有正确处理数据。注册可能是指您必须输入一些银行详细信息,以便他们可以向您收取所有下一个请求的费用。

对于您自己遇到的问题,没有更多的代码我真的帮不上忙。