Google自定义搜索:iOS中的403错误

时间:2014-06-13 19:12:05

标签: ios google-api search-engine google-custom-search

Google自定义搜索从我的iPhone 7.1应用程序返回此403错误。这是在模拟器中运行时的响应:

{
 "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."
 }
}

以下步骤是否存在缺陷?我想建立一个针对iOS应用程序的工作CSE设置过程。每一步的屏幕截图都有望帮助而不是混淆!

  1. https://www.google.com/cse/

  2. 创建自定义搜索引擎(CSE)
  3. 来自设置 - >基础知识,获取搜索引擎ID。 CSE search engine ID

  4. https://developers.google.com/apis-explorer/#p/customsearch/v1/search.cse.list

    测试CSE
    • 在步骤2中将“q”设置为搜索引擎ID的任何测试查询字词(“foo bar”)和“cx”。
    • 按“执行”并接收搜索结果。他们工作。 Google还提供了此网址,我们将在第8步中在Xcode中重复使用该网址。 Google API Explorer test results
  5. 为了让自己成为身份证明和结算的关键,请在https://console.developers.google.com/

  6. 创建一个新项目
  7. 在API& auth - > API - >启用“自定义搜索API”。没有启用其他API。 Developer Console APIs

  8. 在API& auth - >凭证 - >创建一个新的iOS密钥。 Developer Console Credentials 注意:我还尝试了浏览器密钥,搜索结果返回“错误400:无效值”。我回到iOS键,因为我在iOS上,错误似乎不那么严重。

  9. 从Xcode添加此密钥标识符。 Xcode bundle identifier

  10. 在Xcode中,在步骤3中向URL发出GET请求。将{YOUR_API_KEY}替换为步骤6-7中凭据中的密钥。

  11. GET request in Xcode

    NSData *响应包含上面显示的错误403。感谢您对错误的想法!

1 个答案:

答案 0 :(得分:6)

缺少标题字段 X-Ios-Bundle-Identifier

NSString *bundleID = @"com.yourCompany.yourApp";
//...define request as above
[request setHTTPMethod:@"GET"];
[request setValue:bundleID forHTTPHeaderField:@"X-Ios-Bundle-Identifier"];