Menyiapkan antarmuka pengguna

Halaman tutorial Google Cloud Search ini menunjukkan cara menyiapkan aplikasi penelusuran kustom menggunakan widget penelusuran yang dapat disematkan. Untuk memulai dari awal tutorial ini, lihat tutorial memulai Cloud Search.

Menginstal dependensi

  1. Jika konektor masih mengindeks repositori, buka shell baru dan lanjutkan ke sana.

  2. Dari command line, ubah direktori menjadi cloud-search-samples/end-to-end/search-interface.

  3. Untuk mendownload dependensi yang diperlukan guna menjalankan server web, jalankan perintah berikut:

npm install

Membuat kredensial aplikasi penelusuran

Konektor memerlukan kredensial akun layanan untuk memanggil Cloud Search API. Untuk membuat kredensial:

  1. Kembali ke konsol Google Cloud.

  2. Di navigasi sebelah kiri, klik Credentials.

  3. Dari menu drop-down Create credentials, pilih OAuth client ID. Halaman "Buat client ID OAuth" akan muncul.

  4. (Opsional). Jika Anda belum mengonfigurasi layar izin, klik KONFIGURASI LAYAR PERSETUJUAN. Layar "Izin OAuth" akan muncul.

    1. Klik Internal lalu klik BUAT. Layar "OAuth consent" lainnya akan muncul.

    2. Lengkapi kolom wajib diisi. Untuk petunjuk lebih lanjut, lihat bagian izin pengguna pada Menyiapkan OAuth 2.0.

  5. Klik menu drop-down Jenis aplikasi dan pilih Aplikasi web.

  6. Di kolom Name, masukkan "tutorial".

  7. Di kolom Asal JavaScript yang sah, klik TAMBAHKAN URI. Kolom "URIs" kosong akan muncul.

  8. Di kolom URIs, masukkan http://localhost:8080.

  9. Klik CREATE. Layar "OAuth client created" akan muncul.

  10. Catat client ID. Nilai ini digunakan untuk mengidentifikasi aplikasi saat meminta otorisasi pengguna dengan OAuth2. Rahasia klien tidak diperlukan untuk implementasi ini.

  11. Klik OK.

Membuat aplikasi penelusuran

Selanjutnya, buat aplikasi penelusuran di konsol Admin. Aplikasi penelusuran adalah representasi virtual antarmuka penelusuran dan konfigurasi defaultnya.

  1. Kembali ke konsol Google Admin.
  2. Klik ikon Aplikasi. Halaman "Administrasi aplikasi" akan muncul.
  3. Klik Google Workspace. Halaman "Administrasi Google Workspace aplikasi" akan muncul.
  4. Scroll ke bawah, lalu klik Cloud Search. Halaman "Setelan untuk Google Workspace" akan muncul.
  5. Klik Aplikasi Penelusuran. Halaman "Aplikasi Penelusuran" akan muncul.
  6. Klik lingkaran berwarna kuning +. Dialog "Buat aplikasi penelusuran baru" akan muncul.
  7. Di kolom Nama tampilan, masukkan "tutorial".
  8. Klik CREATE.
  9. Klik ikon pensil di samping aplikasi penelusuran yang baru dibuat ("Edit aplikasi penelusuran"). Halaman "Detail aplikasi penelusuran" akan muncul.
  10. Catat Application ID.
  11. Di sebelah kanan Sumber data, klik ikon pensil.
  12. Di samping "tutorial", klik tombol beralih Aktifkan. Tombol ini mengaktifkan sumber data tutorial untuk aplikasi penelusuran yang baru dibuat.
  13. Di sebelah kanan sumber data "tutorial", klik Opsi tampilan.
  14. Periksa semua faset.
  15. Klik SIMPAN.
  16. Klik SELESAI.

Mengonfigurasi aplikasi web

Setelah membuat kredensial dan aplikasi penelusuran, perbarui konfigurasi aplikasi untuk menyertakan nilai-nilai ini sebagai berikut:

  1. Dari command line, ubah direktori ke `cloud-search-samples/end-to-end/search-interface/public.'
  2. Buka file app.js dengan editor teks.
  3. Temukan variabel searchConfig di bagian atas file.
  4. Ganti [client-id] dengan client ID OAuth yang dibuat sebelumnya.
  5. Ganti [application-id] dengan ID aplikasi penelusuran yang dicatat di bagian sebelumnya.
  6. Simpan file.

Menjalankan aplikasi

Mulai aplikasi dengan menjalankan perintah ini:

npm run start

Buat kueri indeks

Untuk membuat kueri indeks menggunakan widget penelusuran:

  1. Buka browser Anda dan buka http://localhost:8080.
  2. Klik sign in untuk mengizinkan aplikasi agar dapat mengkueri Cloud Search atas nama Anda.
  3. Di kotak penelusuran, masukkan kueri, seperti kata "test", lalu tekan enter. Halaman tersebut harus menampilkan hasil kueri beserta faset dan kontrol penomoran halaman untuk melihat hasilnya.

Meninjau kode

Bagian yang tersisa membahas bagaimana antarmuka pengguna dibangun.

Memuat widget

Widget dan library terkait dimuat dalam dua fase. Pertama, skrip bootstrap dimuat:

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

Kedua, callback onLoad dipanggil setelah skrip siap. Kemudian, library klien Google API, Login dengan Google, dan library widget Cloud Search akan dimuat.

/**
 * 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)
}

Inisialisasi aplikasi yang tersisa ditangani oleh initializeApp setelah semua library yang diperlukan dimuat.

Menangani otorisasi

Pengguna harus mengizinkan aplikasi untuk membuat kueri atas nama mereka. Meskipun widget dapat meminta pengguna untuk memberikan otorisasi, Anda dapat memperoleh pengalaman pengguna yang lebih baik dengan menangani sendiri otorisasi.

Untuk antarmuka penelusuran, aplikasi menampilkan dua tampilan yang berbeda, bergantung pada status login pengguna.

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>

Selama inisialisasi, tampilan yang benar akan diaktifkan dan pengendali untuk peristiwa login dan logout akan dikonfigurasi:

/**
 * 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();

  // ...

}

Membuat antarmuka penelusuran

Widget penelusuran memerlukan sejumlah kecil markup HTML untuk input penelusuran dan untuk menyimpan hasil penelusuran:

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>

Widget diinisialisasi dan terikat ke elemen input dan penampung selama inisialisasi:

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();

Selamat, Anda berhasil menyelesaikan tutorial ini. Lanjutkan untuk petunjuk pembersihan.

Sebelumnya Berikutnya