ユーザー インターフェースを設定する

Google Cloud Search チュートリアルのこのページでは、カスタム 検索アプリケーションを作成できます。 このチュートリアルの初めから、 Cloud Search スタートガイドのチュートリアル

依存関係のインストール

  1. コネクタによるリポジトリのインデックス登録がまだ完了していない場合は、新しいシェルを開き、 続行します

  2. コマンドラインから、ディレクトリを cloud-search-samples/end-to-end/search-interface

  3. アプリケーションに必要な依存関係を 次のコマンドを実行します。

npm install

検索アプリケーションの認証情報を作成する

コネクタには、Cloud Search を呼び出すためのサービス アカウントの認証情報が必要です。 API認証情報を作成するには:

  1. Google Cloud コンソールに戻ります。

  2. 左側のナビゲーションで [認証情報] をクリックします。

  3. [認証情報の作成] プルダウン リストから、 OAuth クライアント ID。[Create OAuth client ID]ページが表示されます。

  4. (省略可)同意画面を設定していない場合は、 同意画面を構成します。「OAuth 同意」画面が表示されます。

    1. [内部] をクリックし、[作成] をクリックします。別の「OAuth 同意」スクリーン 表示されます。

    2. 必須項目に入力します。詳細については、お客様をご案内する の同意セクション OAuth 2.0 の設定

  5. [アプリケーションの種類] プルダウン リストをクリックして、[ウェブ アプリケーション] を選択します。

  6. [名前] フィールドに「tutorial」と入力します。

  7. [承認済みの JavaScript 生成元] フィールドで、[URI を追加] をクリックします。空の "URI"フィールドが表示されます。

  8. [URI] フィールドに「http://localhost:8080」と入力します。

  9. [作成] をクリックします。「OAuth クライアントの作成」画面が表示されます。

  10. クライアント ID をメモします。この値は、アプリケーションを特定する際に OAuth2 でユーザー認証をリクエストします。クライアント シークレットは不要です 使用します。

  11. [OK] をクリックします。

検索アプリケーションを作成する

次に、管理コンソールで検索アプリケーションを作成します。検索アプリケーション 検索インターフェースを仮想的に表現したもので、デフォルトの できます。

  1. Google 管理コンソールに戻ります。
  2. アプリアイコンをクリックします。「Apps Administration」ページが表示されます。
  3. [Google Workspace] をクリックします。「Apps Google Workspace Administration」ページが表示されます。
  4. 下にスクロールして [Cloud Search] をクリックします。[Google Workspace の設定]ページ 表示されます。
  5. [検索アプリケーション] をクリックします。「検索アプリケーション」ページが表示されます。
  6. 黄色の丸い [+] をクリックします。"新しい検索アプリケーションの作成"ダイアログが表示されます。
  7. [表示名] フィールドに「tutorial」と入力します。
  8. [作成] をクリックします。
  9. 新しく作成した検索アプリケーションの横にある鉛筆アイコンをクリックします。 (「検索アプリケーションの編集」)。[検索アプリケーションの詳細]ページが表示されます。
  10. アプリケーション ID をメモします。
  11. [データソース] の右側にある鉛筆アイコンをクリックします。
  12. [チュートリアル]の横の[有効にする] トグルをクリックします。この切り替えにより、 新しく作成した検索アプリケーションのチュートリアル データソース。
  13. 「チュートリアル」の右側の[表示オプション] をクリックします。
  14. すべてのファセットを確認します。
  15. [保存] をクリックします。
  16. [完了] をクリックします。

ウェブ アプリケーションを構成する

認証情報と検索アプリを作成したら、アプリケーションを更新する これらの値を含む構成を次のように変更します。

  1. コマンドラインから、 `cloud-search-samples/end-to-end/search-interface/public.'
  2. テキスト エディタで app.js ファイルを開きます。
  3. ファイルの先頭で searchConfig 変数を見つけます。
  4. [client-id] は、以前に作成した OAuth クライアント ID に置き換えます。
  5. [application-id] は、ページに表示されている検索アプリケーション ID に置き換えます。 確認します。
  6. ファイルを保存します。

アプリケーションを実行する

次のコマンドを実行してアプリケーションを起動します。

npm run start

インデックスをクエリする

検索ウィジェットを使用してインデックスをクエリするには:

  1. ブラウザを開き、http://localhost:8080 に移動します。
  2. [sign in] をクリックして、アプリが Cloud Search にクエリを実行することを承認します。 自動的に作成されます。
  3. 検索ボックスに「test」などのクエリを入力します。を押して Enter キーを押します。このページには、クエリの結果に加えて、ファセットと 結果間を移動できます。

コードの確認

以降のセクションでは、ユーザー インターフェースの構築方法について説明します。

ウィジェットを読み込む

ウィジェットと関連ライブラリは、2 つのフェーズで読み込まれます。まず ブートストラップは スクリプトが読み込まれます。

index.html
<script src="https://apis.google.com/js/api.js?mods=enable_cloud_search_widget&onload=onLoad" async defer></script>

次に、スクリプトの準備が整うと onLoad コールバックが呼び出されます。その後、 Google API クライアント、Google ログイン、Cloud Search のウィジェット ライブラリです。

/**
 * Load the cloud search widget & auth libraries. Runs after
 * the initial gapi bootstrap library is ready.
 */
function onLoad() {
  gapi.load('client:auth2:cloudsearch-widget', initializeApp)
}

アプリの残りの初期化は、initializeApp によって処理されます。 呼び出すことができます。

認可の処理

ユーザーは、ユーザーに代わってクエリをアプリに許可する必要があります。ウィジェットは ユーザーに承認を求めることができるため、ユーザー エクスペリエンスが向上します。 認可の処理を行います。

検索インターフェースについては、入力に応じて 2 つの異なるビューが表示されます。 ユーザーのログイン状態に応じて異なります。

index.html
<div class="content">
  <div id="app" hidden>
    <div id="header">
      <button id="sign-out">Sign-out</button>
    </div>
    <!-- Markup for widget...-->
  </div>
  <div id="welcome" hidden>
    <h1>Cloud Search Tutorial</h1>
    <p>Sign in with your Google account to search.</p>
    <button id="sign-in">Sign-in</button>
  </div>
</div>

初期化中は適切なビューが有効になり、 ログイン イベントとログアウト イベントが構成されています。

/**
 * Initialize the app after loading the Google API client &
 * Cloud Search widget.
 */
async function initializeApp() {
  await gapi.auth2.init({
      'clientId': searchConfig.clientId,
      'scope': 'https://www.googleapis.com/auth/cloud_search.query'
  });

  let auth = gapi.auth2.getAuthInstance();

  // Watch for sign in status changes to update the UI appropriately
  let onSignInChanged = (isSignedIn) => {
    document.getElementById("app").hidden = !isSignedIn;
    document.getElementById("welcome").hidden = isSignedIn;
    if (resultsContainer) {
      resultsContainer.clear();
    }
  }
  auth.isSignedIn.listen(onSignInChanged);
  onSignInChanged(auth.isSignedIn.get()); // Trigger with current status

  // Connect sign-in/sign-out buttons
  document.getElementById("sign-in").onclick = (e) =>  auth.signIn();
  document.getElementById("sign-out").onclick = (e) => auth.signOut();

  // ...

}

検索インターフェースの作成

検索ウィジェットでは、検索用に少量の HTML マークアップが必要です 検索結果を保持するには、次のようにします。

index.html
<div id="search_bar">
  <div>
    <div id="suggestions_anchor">
      <input type="text" id="search_input" placeholder="Search for...">
    </div>
  </div>
</div>
<div id="facet_results" ></div>
<div id="search_results" ></div>

ウィジェットが初期化され、入力要素とコンテナ要素にバインドされている 次の処理が行われます。

gapi.config.update('cloudsearch.config/apiVersion', 'v1');
resultsContainer = new gapi.cloudsearch.widget.resultscontainer.Builder()
  .setSearchApplicationId(searchConfig.searchAppId)
  .setSearchResultsContainerElement(document.getElementById('search_results'))
  .setFacetResultsContainerElement(document.getElementById('facet_results'))
  .build();

const searchBox = new gapi.cloudsearch.widget.searchbox.Builder()
  .setSearchApplicationId(searchConfig.searchAppId)
  .setInput(document.getElementById('search_input'))
  .setAnchor(document.getElementById('suggestions_anchor'))
  .setResultsContainer(resultsContainer)
  .build();

これでチュートリアルは完了です。そのまま続行 クリーンアップ手順を実行します

前へ 次へ