Configurare l'interfaccia utente

Questa pagina del tutorial di Ricerca Google Cloud mostra come configurare un'applicazione di ricerca personalizzata utilizzando il widget di ricerca incorporabile. Per iniziare dall'inizio di questo tutorial, consulta la guida introduttiva di Cloud Search.

Installa le dipendenze

  1. Se il connettore sta ancora indicizzando il repository, apri una nuova shell e continua da lì.

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

  3. Per scaricare le dipendenze necessarie per eseguire il server web, esegui il seguente comando:

npm install

Crea 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. Nell'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 del consenso, fai clic su CONFIGURA SCHERMATA DI CONSENSO. Viene visualizzata la schermata "Consenso OAuth".

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

    2. Compila i campi obbligatori. Per ulteriori istruzioni, consulta la sezione relativa al consenso degli utenti nella 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 si richiede l'autorizzazione utente con OAuth2. Il client secret non è obbligatorio 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 relativa 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 per le app".
  4. Scorri verso il basso e fai clic su Ricerca cloud. 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 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 Attiva. Questo pulsante di attivazione/disattivazione attiva 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 una 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, come la parola "test", e premi Invio. La pagina dovrebbe visualizzare i risultati della query insieme ai facet e ai controlli di paginazione per navigare tra i risultati.

Revisione del codice

Le sezioni rimanenti esaminano la modalità di creazione dell'interfaccia utente.

Caricamento del widget

Il widget e le librerie correlate 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>

In secondo luogo, il callback onLoad viene chiamato quando lo script è pronto. Quindi carica il client dell'API Google, Accedi con Google e le librerie dei 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)
}

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

Gestione dell'autorizzazione

Gli utenti devono autorizzare l'app a eseguire query per loro conto. Sebbene il widget possa chiedere agli utenti di autorizzare, puoi offrire un'esperienza utente migliore gestendo l'autorizzazione autonomamente.

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 abilitata la visualizzazione corretta e vengono configurati i gestori per gli eventi di accesso e disconnessione:

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

Complimenti, hai completato il tutorial. Continua per le istruzioni di pulizia.

Indietro Avanti