我浏览了几个链接,以便找到在ios应用程序中实现google customsearchapi的适当步骤,并在这个过程中花费了大约6-7个小时。
链接:
https://developers.google.com/custom-search/json-api/v1/introduction
http://developers.google.com/apis-explorer/#p/customsearch/v1/search.cse.list?q=a&
_
h=1&
https://productforums.google.com/forum/#!topic/customsearch/hT2fnfErVwo
谷歌自定义搜索: iOS中的403错误
万物之父
所有这些都提供了形成的点点滴滴。是否有任何地方可以提供总结、精确的信息,以帮助在iOS应用程序中实现自定义搜索?
发布于 2014-11-20 19:57:50
流程的简要步骤:
创建一个Google帐户(如果您有,请忽略)
你可能会在下面找到一些与定价相关的信息。
这个页面很有帮助
(你也可以忽略这一点)
创建工程并生成API密钥
转到
google控制台
并创建一个项目
创建项目后,单击它以转到其详细信息。
在左栏的Auth&API段下,单击APIs。
现在你会发现
CustomSearchAPI
链接在Browse API部分(默认情况下未激活)中,通过单击右侧的按钮将其打开。
现在,单击APIs选项下方的Credentials
在这个页面上的“公共API访问”点击创建新的密钥按钮,现在,选择浏览器密钥(因为首先我们想在浏览器上测试它),创建它,并保留它,因为它是现在。
创建
自定义搜索引擎
现在,在新选项卡上,打开
自定义搜索引擎
页面。在此页面上,单击Create a custom search engine 按钮
这将引导您
创建新的搜索引擎页面
,在"Sites to search“字段中输入您的域名。(如果你没有一个不用担心,给任何东西,那就有www。在开头和结尾使用.com )
填写名称,如果它还没有选择一个,然后单击create。
所以你得到了一个跳跃的机器人来祝贺你?;)是的,就是这样。在这个页面上,点击“控制面板”按钮,进入“修改你的搜索引擎”。
这就是了,现在打开图像搜索,(如果你想的话)
另外,在"Sites to search“部分,选择”搜索整个网页但强调包含的项目“,而不是默认的"Search only included site”。
就是这样,在这个页面的底部点击更新。然后回到页面中间,在“详细信息”标题下,单击搜索引擎ID,复制Id,将其粘贴到某个位置。
搜索,
使用get请求
要发出get请求,请使用
此请求URL
在它替换中,{API
_
KEY},该密钥是您在“创建项目并生成API密钥”部分创建的
并替换{搜索
_
引擎
_
KEY}使用您刚刚复制-粘贴的搜索引擎Id,使用某个不同的值调用它,在查询字符串中,然后是'a',
https://www.googleapis.com/customsearch/v1?
*
*
q=a
*
*
&key={API
_
KEY}&cx={搜索
_
引擎
_
密钥}
改变任何你想搜索的东西,你必须有漂亮的JSON的搜索结果
其他东西
如果你想看到请求状态,回到你的项目页面,有多少个请求被放置,有多少个请求失败,等等。点击概览,你会得到这方面的图表,爱你谷歌
如果您在使用JSON时遇到问题,这里有一些链接可以为您服务,
什么是JSON
1
2
在中使用JSON
ios
..。
在中使用JSON
安卓
..。
发布于 2018-03-09 14:59:40
下面提供了在
Swift 4
,地址为
请求来自
let apiKey = "Your api key here"
let bundleId = "com.Your uniqueBundleId here"
let searchEngineId = "Your searchEngine here"
let serverAddress = String(format: "https://www.googleapis.com/customsearch/v1?q=%@&cx=%@&key=%@","Your query here" ,searchEngineId, apiKey)
let url = serverAddress.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let finalUrl = URL(string: url!)
let request = NSMutableURLRequest(url: finalUrl!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10)
request.httpMethod = "GET"
request.setValue(bundleId, forHTTPHeaderField: "X-Ios-Bundle-Identifier")
let session = URLSession.shared
let datatask = session.dataTask(with: request as URLRequest) { (data, response, error) in
do{
if let jsonResult = try JSONSerialization.jsonObject(with: data!, options: []) as? NSDictionary {
print("asyncResult\(jsonResult)")
}
}
catch let error as NSError {
print(error.localizedDescription)
}
}
datatask.resume()https://stackoverflow.com/questions/27039010
复制相似问题