Configurare l'interfaccia utente

Questa pagina del tutorial di Google Cloud Search mostra come configurare un'applicazione di ricerca personalizzata utilizzando il widget di ricerca incorporabile. Per iniziare questo tutorial, consulta il Tutorial introduttivo su Cloud Search.

Installa le dipendenze

  1. Se il connettore continua a indicizzare il repository, apri una nuova shell e continua da lì.

  2. Dalla riga di comando, cambia la directory in cloud-search-samples/end-to-end/search-interface.

  3. Per scaricare le dipendenze necessarie per l'esecuzione del server web, esegui questo comando:

npm install

Creare le credenziali dell'applicazione di ricerca

Il connettore richiede le credenziali dell'account di servizio per chiamare le API Cloud Search. Per creare le credenziali:

  1. Torna alla console Google Cloud.

  2. Nel menu di navigazione a sinistra, fai clic su Credenziali.

  3. Dall'elenco a discesa Crea credenziali, seleziona ID client OAuth. Viene visualizzata la pagina "Crea ID client OAuth".

  4. (Facoltativo) Se non hai configurato la schermata per il consenso, fai clic su CONFIGURA SCHERMATA DI CONSENSO. Viene visualizzata la schermata "Consenso OAuth".

    1. Fai clic su Interno, quindi su CREA. Viene visualizzata un'altra schermata "Consenso OAuth".

    2. Compila i campi obbligatori. Per ulteriori istruzioni, consulta la sezione relativa al consenso dell'utente della pagina Configurare OAuth 2.0.

  5. Fai clic sull'elenco a discesa Tipo di applicazione e seleziona Applicazione web.

  6. Nel campo Nome, inserisci "tutorial".

  7. Nel campo Origini JavaScript autorizzate, fai clic su AGGIUNGI URI. Viene visualizzato un campo "URI" vuoto.

  8. Nel campo URI, inserisci http://localhost:8080.

  9. Fai clic su CREA. Viene visualizzata la schermata "Client OAuth creato".

  10. Prendi nota dell'ID client. Questo valore viene utilizzato per identificare l'applicazione quando viene richiesta l'autorizzazione dell'utente con OAuth2. Il client secret non è necessario per questa implementazione.

  11. Fai clic su Ok.

Crea l'applicazione di ricerca

Quindi, crea un'applicazione di ricerca nella Console di amministrazione. L'applicazione di ricerca è una rappresentazione virtuale dell'interfaccia di ricerca e della sua configurazione predefinita.

  1. Torna alla Console di amministrazione Google.
  2. Fai clic sull'icona App. Viene visualizzata la pagina "Amministrazione app".
  3. Fai clic su Google Workspace. Viene visualizzata la pagina "Amministrazione di Google Workspace app".
  4. Scorri verso il basso e fai clic su Cloud Search. Viene visualizzata la pagina "Impostazioni per Google Workspace".
  5. Fai clic su Applicazioni di ricerca. Viene visualizzata la pagina "Cerca applicazioni".
  6. Fai clic sul segno + giallo e rotondo. Viene visualizzata la finestra di dialogo "Crea una nuova applicazione di ricerca".
  7. Nel campo Nome visualizzato, inserisci "tutorial".
  8. Fai clic su CREA.
  9. Fai clic sull'icona a forma di matita accanto all'applicazione di ricerca appena creata ("Modifica applicazione di ricerca"). Viene visualizzata la pagina "Dettagli applicazione di ricerca".
  10. Prendi nota dell'ID applicazione.
  11. A destra di Origini dati, fai clic sull'icona a forma di matita.
  12. Accanto a "tutorial", fai clic sul pulsante di attivazione/disattivazione Abilita. Questa opzione di attivazione/disattivazione abilita l'origine dati del tutorial per l'applicazione di ricerca appena creata.
  13. A destra dell'origine dati "tutorial", fai clic su Opzioni di visualizzazione.
  14. Controlla tutti i facet.
  15. Fai clic su SALVA.
  16. Fai clic su FINE.

Configura l'applicazione web

Dopo aver creato le credenziali e l'app di ricerca, aggiorna la configurazione dell'applicazione in modo da includere questi valori come segue:

  1. Dalla riga di comando, cambia la directory in "cloud-search-samples/end-to-end/search-interface/public".
  2. Apri il file app.js con un editor di testo.
  3. Trova la variabile searchConfig nella parte superiore del file.
  4. Sostituisci [client-id] con l'ID client OAuth creato in precedenza.
  5. Sostituisci [application-id] con l'ID dell'applicazione di ricerca indicato nella sezione precedente.
  6. Salva il file.

Eseguire l'applicazione

Avvia l'applicazione eseguendo questo comando:

npm run start

Esegui una query sull'indice

Per eseguire query sull'indice utilizzando il widget di ricerca:

  1. Apri il browser e vai a http://localhost:8080.
  2. Fai clic su Accedi per autorizzare l'app a eseguire query su Cloud Search per tuo conto.
  3. Nella casella di ricerca, inserisci una query, ad esempio la parola "test", e premi Invio. La pagina dovrebbe visualizzare i risultati della query insieme ai facet e ai controlli di paginazione per esplorare i risultati.

Revisione del codice

Le altre sezioni esaminano il modo in cui viene creata l'interfaccia utente.

Caricamento del widget in corso...

Il widget e le relative librerie vengono caricati in due fasi. Per prima cosa, viene caricato lo script di bootstrap:

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

Il callback onLoad viene chiamato quando lo script è pronto. Quindi carica il client API di Google, Accedi con Google e le librerie di widget di 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)
}

La restante inizializzazione dell'app viene gestita da initializeApp una volta caricate tutte le librerie richieste.

Gestione delle autorizzazioni

Gli utenti devono autorizzare l'app a eseguire query per loro conto. Anche se il widget può richiedere agli utenti l'autorizzazione, puoi migliorare l'esperienza utente gestendo l'autorizzazione in autonomia.

Per l'interfaccia di ricerca, l'app presenta due visualizzazioni diverse a seconda dello stato di accesso dell'utente.

<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>

Durante l'inizializzazione, viene attivata la visualizzazione corretta e vengono configurati i gestori per gli eventi di accesso e uscita:

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

  // ...

}

Creazione dell'interfaccia di ricerca

Il widget Ricerca richiede una piccola quantità di markup HTML per l'input di ricerca e per contenere i risultati di ricerca:

<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>

Il widget viene inizializzato e associato agli elementi di input e container durante l'inizializzazione:

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

Congratulazioni, hai completato il tutorial! Continua per le istruzioni per la pulizia.

Indietro Avanti