【问题标题】:Google Search API ruby谷歌搜索 API 红宝石
【发布时间】:2017-06-28 13:13:01
【问题描述】:

我正在使用 Rails 2.3。我的要求是从 Google 搜索查询中获取前 20 个链接。

我想使用http://rubygems.org/gems/google-api-client gem。

但我无法找到任何适当的文档来使用身份验证进行自定义谷歌搜索。谁能给我举个例子,我可以从中了解如何使用 google-api-client gem 进行自定义 google 搜索?

【问题讨论】:

    标签: ruby-on-rails ruby google-api


    【解决方案1】:

    如果有人偶然发现,这是此代码的更新版本:

    宝石文件

    gem 'google-api-client', '~> 0.11'
    

    search.rb

    require 'google/apis/customsearch_v1'
    Search = Google::Apis::CustomsearchV1
    search_client = Search::CustomsearchService.new
    search_client.key = 'YOUR API KEY'
    response = search_client.list_cses('your query', {cx: 'Search Engine ID'})
    status, headers, body = response
    
    pp status
    pp headers
    pp body
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      我看了一下API,似乎并不难...只需要定义您要使用的google's api's 中的哪一个。在您的情况下,您似乎想使用customsearch api.

      所以你的代码应该是这样的:

      require 'google/api_client'
      my_search_client = Google::APIClient.new
      google_search = my_search_client.discovered_api('customsearch')
      response = my_search_client.execute(
        google_search.cse.list, 'q' => 'your query'
      )
      status, headers, body = response
      

      对于身份验证部分,您应该可以直接从this page 复制和粘贴。只需使用您自己的价值观。

      【讨论】:

      • 感谢您的回复。它帮助很大。我还有几个问题, 1. 每次我尝试使用 api 时,它都会要求设置 access_token。具体来说,我收到以下消息“ArgumentError:缺少访问令牌”。 2. 如果我设置了一个虚拟访问令牌,那么我也没有得到任何结果,而是收到以下消息“无效的凭据”。我已经设置了“key”和“cx”的值。如果我在浏览器中使用由 api 生成的相同 url,我会得到正确的结果。有什么想法吗?
      • 看起来你可以设置一个虚拟访问令牌。执行类似的操作:my_search_client.authorization.access_token = '123'
      • 其实就是这样:my_search_client.authorization = nil
      • 感谢 Sean.... 实际上 my_search_client.authorization = nil 工作正常,因为我不需要登录即可使用此 API。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      相关资源
      最近更新 更多