APEX 22.2の検索コンポーネントをGoogle Custom Search APIと組み合わせて使用します。
以下のような検索ができるAPEXアプリケーションを作成します。
まずはGoogle側で準備作業を行います。
Google Cloudのプロジェクトを開き、APIとサービスの有効を呼び出します。
Custom Search APIが見つかるので、それを選択します。
Custom Search APIが有効になります。今回は認証情報としてAPIキーを使用します。APIキーの作成方法については、Google Blogger APIについて紹介しているこちらの記事を参照してください。
Custom Search APIで指定するプログラム可能な検索エンジンを追加します。コントロールパネルを開きます。
未作成であれば追加します。
名前などを設定し、検索エンジンを作成します。
検索エンジンが作成されます。
カスタマイズをクリックし、検索エンジンの概要を開きます。
Oracle APEXの作業に移ります。
最初にWeb資格証明を作成します。
ワークスペース・ユーティリティのWeb資格証明を開き、作成を開始します。
名前はGoogle Custom Search API Keyとしました。静的識別子としてGOOGLE_SEARCH_API_KEYを割り当てています。GoogleのAPIキーなので、認証タイプはURL問合せ文字列、資格証明名はkey、資格証明シークレットとしてGoogle側で発行したAPIキーを入力します。
URLに対して有効は、Custom Search APIのエンドポイントURLである、以下を指定します。
https://customsearch.googleapis.com/customsearch/v1
以上で作成をクリックし、Web資格証明を作成します。
RESTデータ・ソースのもうひとつのパラメータqは、行検索に使用がONであるため、用途が検索キーワードを渡すことに決まっています。そのため、パラメータとしてはリストされていません。
アプリケーション作成ウィザードを起動し、空のアプリケーションを作成します。名前はGoogle Custom Searchとします。
Custom Search APIを呼び出すRESTデータ・ソースを作成します。
共有コンポーネントのRESTデータ・ソースを開きます。
作成をクリックします。
RESTデータ・ソースの作成は最初からを選びます。
次へ進みます。
RESTデータ・ソース・タイプとして簡易HTTP、名前はGoogle Custom Search、URLエンドポイントとして、以下を指定します。検索エンジンIDは適切な値に置き換えます。APIの応答を解析するため、検索ワードは必ず検索にヒットする単語を選びます。
https://customsearch.googleapis.com/customsearch/v1?q=検索ワード&cx=検索エンジンID
Custom Search JSON APIのパラメータは以下に解説があります。必要であればパラメータを追加します。RESTデータ・ソースのパラメータとして認識されます。(後でも追加できます。)
ベースURLおよびサービスURLパスが認識されます。通常変更は不要なので、そのまま次へ進みます。
ページ区切りタイプはページ区切りなしを選択します。
次へ進みます。
認証が必要ですはONにします。資格証明は作成済みのGoogle Custom Search API Keyを選択します。
以上で検出をクリックします。
検索結果が取得され、プレビューされます。
RESTデータ・ソースの作成をクリックします。
作成されたRESTデータ・ソースGoogle Custom Searchを開き、設定を確認します。
パラメータの設定を変更します。
cxを開きます。
パラメータの値を削除し(デフォルト値を削除)、詳細の必須をONに変更します。
変更の適用をクリックします。
次にqを開きます。
cxと同じく、パラメータの値を削除し詳細の必須をONにします。さらに行検索で使用をONにします。行検索で使用をONにすることにより、このパラメータqは検索キーワードを指定するパラメータであると認識されます。
変更の適用をクリックします。
以上でRESTデータ・ソースの設定は完了です。
作成したRESTデータ・ソースを呼び出す検索構成を作成します。
共有コンポーネントの構成の検索を開きます。
作成をクリックします。
名前はGoogle Custom Searchとします。検索タイプは標準です。
次へ進みます。
データ・ソースにRESTデータ・ソースを選択し、RESTデータ・ソースとしてGoogle Custom Searchを選びます。
次へ進みます。
主キー列はLINK(Varchar2)、タイトル列はTITLE(Varchar2)、説明列はSNIPPET(Varchar2)とします。アイコン・ソースとしてアイコン・クラスを選択し、アイコンCSSクラスにfa-file-searchを指定します。
以上で検索構成の作成をクリックします。
検索構成が作成されます。
ソースのRESTソース・パラメータ名のcxの値タイプをアイテムに変更し、式としてG_ENGINE_IDを指定します。検索エンジンIDは、アプリケーション定義の置換文字列として設定します。
変更の適用をクリックします。
アプリケーション定義の置換文字列としてG_ENGINE_IDを設定します。置換値は検索エンジンIDです。
検索ページを作成します。
ページの作成を実行します。
検索ページを選択します。
ページ定義の名前はGoogle検索とします。ページ・モードは標準です。構成の検索のGoogle Custom Searchにチェックを入れます。
ページの作成をクリックします。
検索ページが作成されます。
Google Custom Search APIは(無料枠を超えると)課金されるので、すぐにリージョン検索結果を選択し、属性の入力時に検索をOFFに変更します。
以上でアプリケーションは完成です。
ページを実行し検索キーワードを入力して検索すると、記事の先頭のGIF動画のように動作します。
検索結果の表示形式は色々とカスタマイズすることができます。こちらの記事でカスタマイズ方法を少し触れているので参考にしてください。
今回作成したAPEXアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/google-custom-search.zip
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完