Пользовательский поиск Google: ошибка 403 в iOS
пользовательский поиск Google возвращает эту ошибку 403 из моего приложения iPhone 7.1. Это ответ при запуске в симуляторе:
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "accessNotConfigured",
"message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
}
],
"code": 403,
"message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
}
}
есть ли недостаток в шагах ниже? Я хотел бы установить рабочий процесс установки CSE, специфичный для приложений iOS. Скриншоты на каждом шаге, надеюсь, помогут и не запутать!
создайте пользовательскую поисковую систему (CSE) вhttps://www.google.com/cse/
Настройки - >Основы, получить идентификатор поисковой системы.
-
Проверьте CSE на https://developers.google.com/apis-explorer/#p/customsearch/v1/search.cse.list
- установите "q"для любых условий тестового запроса ("foo bar") и" cx " для идентификатора поисковой системы на Шаге 2.
- нажмите "Выполнить" и получаем результаты поиска. Они работают. Google также предоставляет этот URL, который мы будем повторно использовать в Xcode в шаге 8.
чтобы получить ключ для ID и выставления счетов, создайте новый проект по адресуhttps://console.developers.google.com/
В разделе API & auth - > API - > включить " пользовательский API поиска."Никакие другие API не включены.
В разделе API & auth - > учетные данные - > создайте новый ключ iOS. Примечание: Я также попробовал ключ браузера, и результат поиска вернулся " ошибка 400: неверное значение."Я вернулся к ключу iOS, так как я на iOS, и ошибка казалась менее серьезной.
добавьте к этому ключу идентификатор пакета из Xcode.
в Xcode сделайте запрос GET на URL-адрес на Шаге 3. Замените {YOUR_API_KEY} ключом из ваших учетных данных в шагах 6-7.
NSData * ответ содержит ошибку 403, показанную выше. Спасибо за любые мысли о том, что неправильно!
1 ответов
не хватало поля заголовка X-Ios-Bundle-Идентификатор.
NSString *bundleID = @"com.yourCompany.yourApp";
//...define request as above
[request setHTTPMethod:@"GET"];
[request setValue:bundleID forHTTPHeaderField:@"X-Ios-Bundle-Identifier"];