使用Ruby的google-api-client与Google自定义搜索API

5
作为我目前参与的人员搜索项目的一部分,我需要编写一个Ruby脚本,可以向Google自定义搜索API发送搜索查询并存储搜索结果以进行处理。我找到了Ruby google-api-client gem(http://code.google.com/p/google-api-ruby-client/)并安装了它,但是,尽管我已经彻底阅读了文档,但我不知道如何执行Custom Search API调用。这是我第一次尝试使用Google API,我发现这个过程有点令人不知所措,请问有没有任何经验的人可以提供一些样例代码供我学习?谢谢
3个回答

2

虽然我没有测试过这个,但像这样的东西应该可以工作:

require 'google/api_client'
# Creates an instance of the client.
client = Google::APIClient.new
# Authorization setup goes here.
# Fetch the discovery document and obtain a reference to the API we care about.
search = client.discovered_api('customsearch')
# Make an API call using a reference to a discovered method.
response = client.execute(
  search.cse.list, 'q' => 'your query'
)
status, headers, body = response

请注意,我省略了所有与身份验证相关的设置代码,您可以在 Ruby 客户端文档中找到这些信息。

我认为我遇到的问题是我不理解发现文档是什么。有没有相关资源可以学习它们以及我需要如何处理它们? - Richard Stokes
@Richard 我认为你不需要做任何事情,只需按照宝石文档中所示构建查询即可。看起来发现文档处理部分都在宝石中抽象出来了,但这里有一个链接解释了它们是什么:http://code.google.com/apis/discovery/v1/using.html#discovery-doc - Tim Snowhite
是的,本质上它是一种以机器可读方式描述API的资源。这使得客户端能够准确地了解如何为特定的API进行API调用。您只需要知道API的标识符和目标版本,即可获取发现文档的引用。然后,您可以使用此发现文档引用来获取方法引用,然后随后传递适当的参数以进行API调用。 - Bob Aman
值得注意的是,随着 gem 一起提供的 google-api 命令允许您浏览任何给定 API 的发现文档的部分。 - Bob Aman
我省略了所有身份验证的设置代码,你可以在Ruby客户端文档中找到。确切的位置在哪里?我只能找到关于buzz和calendar的身份验证示例,这些示例似乎在完全不清楚的方式上不同。 - fields
显示剩余2条评论

1

在使用API密钥而不是OAuth进行身份验证时,有一些需要注意的地方,这些地方在the code abode中有详细说明。

在构建客户端时,必须明确将授权参数设置为nil,否则gem会尝试使用OAuth进行身份验证,因此,如果仅使用API密钥从服务器调用,则始终会收到401未经授权的错误。提供了使用customsearch API的完整代码(复制并粘贴到irb中)。the code abode - google-api-client for ruby


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接