ゴール
以下を Ruby から叩く
まず REST API を呼ぶまで
-
参考記事を確認しながら事前準備
- プロジェクトの作成
-
https://console.cloud.google.com/home/dashboard?project=[プロジェクト名]
にアクセス出来れば OK
-
- 該当 API の有効化
- API キーの発行
-
Custom Search Engine の作成
- 検索するサイトは適当に
- 「ウェブ全体を検索する」を ON
- 検索エンジン ID の取得
- プロジェクトの作成
-
REST API を呼んでみる
- フォーマットは、
GET https://www.googleapis.com/customsearch/v1?key=[APIキー]&cx=[検索エンジンID]&q=[検索内容]
- 検索結果(the URL, title and text snippets)は、items に入っている
- その他リクエストとレスポンスの仕様は随時確認しながら
- フォーマットは、
Gem から API を叩く
- google-api-client を使う
- 無料枠や結果については随時確認しながら
require 'google/apis/customsearch_v1'
# Doc: https://googleapis.dev/ruby/google-api-client/latest/Google/Apis/CustomsearchV1/CustomSearchAPIService.html
searcher = Google::Apis::CustomsearchV1::CustomSearchAPIService.new
searcher.key = 'APIキー'
# Doc: https://googleapis.dev/ruby/google-api-client/latest/Google/Apis/CustomsearchV1/Search.html
results = searcher.list_cses(cx: '検索エンジンID', q: '検索内容')
# Doc: https://googleapis.dev/ruby/google-api-client/latest/Google/Apis/CustomsearchV1/Search/SearchInformation.html
results.search_information.total_results
# Doc: https://googleapis.dev/ruby/google-api-client/latest/Google/Apis/CustomsearchV1/Result.html
items = results.items
items.first.title
items.first.snippet
items.first.link
# Doc: https://developers.google.com/custom-search/docs/structured_data#pagemaps
items.first.pagemap['cse_image'].first['src']