API пользовательского поиска Google: превышен суточный лимит для использования без аутентификации. Продолжение использования требует регистрации - PullRequest
0 голосов
/ 09 января 2019

API пользовательского поиска Google отклоняет мои запросы, говоря, что я превысил ограничение. Их лимит составляет 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 голосов
/ 10 января 2019

Проблема была в моем Java-коде, я думаю, что неправильно добавлял учетные данные в мой код. Оказывается, я тоже искажал свой запрос GET.

Запуск отредактированного примера Google возвращает ожидаемые результаты поиска JSON:

curl -l GET 'https://www.googleapis.com/customsearch/v1?key=MY_API_KEY&cx=017576662512468239146:omuauf_lfve&q=lectures'
0 голосов
/ 09 января 2019

Запрос не должен быть «успешным», чтобы считаться до предела. В глазах Google это «успешно», так как это была просьба. Вы просто неправильно обрабатываете данные. Регистрация, вероятно, относится к тому факту, что вы должны указать некоторые банковские реквизиты, чтобы они могли взимать плату за все последующие запросы.

Что касается проблемы, с которой вы сами столкнулись, я не могу помочь без дополнительного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...