💡

Custom Search API キーと検索エンジン(cx)の取得方法

に公開

はじめに

こんにちは。プログラミングスクールでRuby on Railsを主に学習しているりゅうと申します。
前回作成したアプリで、Google Custom Search JSON API を使用したので記事にしました。

⚠️ 注意
プログラミング初心者のため、間違いがあるかもしれません。
また、お使いのPCや環境によってはうまく動作しない可能性もございます。
お気付きの点がありましたら遠慮なく教えていただけると嬉しいです。
よろしくお願いいたします。


前提


Google Custom Search API とは?

Custom Search JSON API を使用すると、プログラム可能検索エンジンから検索結果を取得して表示するウェブサイトやアプリケーションを開発できます。この API では、RESTful リクエストを使用して、ウェブ検索または画像検索の結果を JSON 形式で取得できます。
出典:Custom Search JSON API

つまり、Googleの検索機能を自分のアプリに組み込むイメージです。


手順

1. Custom Search APIを有効にする

まず Google Cloud Console にアクセスします。

左上のナビゲーションメニューをクリックします。

その後、APIs & Services をクリックします。

次に左メニューから Library をクリックし、検索窓に「Custom Search API」と入力します。

以下の画像が出ると思います

検索結果から Custom Search API を有効化します。
画像のように「API Enabled」と表示されていればOKです。


2. APIキーを発行する

左メニューの Credentials をクリックし、画面上部の + CREATE CREDENTIALS を押します。

以下の画像の場所にあります

その後「API Key(APIキー)」を選ぶと、新しいAPIキーが発行されます 🎉

次に「Restrict key」から制限をかけていきます。

Application restrictions

今回は none に設定しました。

⚠️ 注意
noneにすると、もしAPIキーが漏洩した場合、誰でも使える状態になってしまいます。

セキュリティ的には「IP addresses」に設定するのが望ましいですが、私の場合(Renderでデプロイ)はうまく行きませんでした。

  • RenderはアウトバウンドIPが固定ではないため、設定できない場合があります。
  • 「Static Outbound IP アドオン」を契約すれば3つの固定IPを利用できるようですが、詳細は不明です。
    👉 ご存知の方がいれば教えていただけると幸いです🙇

API restrictions

こちらは Restrict key をクリックして Custom Search API を選択 → Save を押せば完了です。

こうしておくと、仮にキーが漏洩しても Custom Search APIしか使えない状態 になります。
Custom Search JSON APIに関して、無料枠が超えた場合はAPIが叩かれなくなるだけで、料金がかかることはありません。

料金

Custom Search JSON APIでは、1日あたり100件の検索クエリを無料で利用できます。
追加が必要な場合は、課金を有効化すると1,000クエリあたり$5で、1日最大1万クエリまで利用可能です。
出典:Custom Search JSON API


3. 検索エンジン(CX)の取得

次に Programmable Search Engine にアクセスします。

以下の画面が表示されます。

  • Name your search engine はラベルなので自由に入力してOKです。
  • 私は「アプリ名 Search」としました。

Search specific sites or pages
自分で指定した 特定のサイトやページだけ を検索対象にします。

Search the entire web
Google検索と同じように、インターネット全体を対象に検索します。

私の場合は後者だったので、後者にしましたが、必要に応じて変更して下さい。

「Create」をクリックするとコードが表示され、その中の

cx=XXXXXXXXXXXXXXXX
検索エンジンID(cx) です。

これもAPIキー同様、公開されない場所に安全に保存しましょう。


おわりに

今回は Google Custom Search JSON APIのAPIキーと検索エンジンID(cx)の取得方法 を紹介しました。

デプロイ先によってはアウトバウンドIPを固定できるサービスもあるようなので、今後はIPアドレス制限の方法も学んでいきたいと思います。

ご覧いただきありがとうございました 🙏


参考記事

Discussion