Cómo configurar la interfaz de usuario

En esta página del instructivo de Google Cloud Search, se muestra cómo configurar una campaña de búsqueda con el widget de búsqueda incorporable. Para comenzar desde el principio de este instructivo, consulta Instructivo para comenzar a usar Cloud Search.

Instala dependencias

  1. Si el conector sigue indexando el repositorio, abre una nueva shell y continuar ahí.

  2. Desde la línea de comandos, cambia el directorio a cloud-search-samples/end-to-end/search-interface

  3. Para descargar las dependencias necesarias para con el servidor web, ejecuta el siguiente comando:

npm install

Crea las credenciales de la aplicación de búsqueda

El conector requiere credenciales de cuenta de servicio para llamar a Cloud Search APIs Para crear las credenciales, sigue estos pasos:

  1. Regresa a la consola de Google Cloud.

  2. En el panel de navegación izquierdo, haz clic en Credenciales.

  3. En la lista desplegable Crear credenciales, selecciona ID de cliente de OAuth. La opción “Crear ID de cliente de OAuth” .

  4. (Opcional) Si no configuraste la pantalla de consentimiento, haz clic en CONFIGURAR PANTALLA DE CONSENTIMIENTO. El “consentimiento de OAuth” aparecerá una pantalla.

    1. Haz clic en Interno y, luego, en CREAR. Otro "consentimiento de OAuth" pantalla .

    2. Completa los campos obligatorios. Para obtener más instrucciones, consulta al usuario sección de consentimiento de Configura OAuth 2.0.

  5. Haz clic en la lista desplegable Tipo de aplicación y selecciona Aplicación web.

  6. En el campo Nombre, escribe "tutorial".

  7. En el campo Orígenes autorizados de JavaScript, haz clic en AGREGAR URI. Un campo de “URI” .

  8. En el campo URI, ingresa http://localhost:8080.

  9. Haz clic en CREAR. El “cliente de OAuth creado” aparecerá una pantalla.

  10. Anota el ID de cliente. Este valor se usa para identificar la aplicación cuando que solicita la autorización del usuario con OAuth2. No se requiere el secreto del cliente para esta implementación.

  11. Haz clic en Aceptar.

Crea la aplicación de búsqueda

A continuación, crea una aplicación de búsqueda en la Consola del administrador. La aplicación de búsqueda es una representación virtual de la interfaz de búsqueda y su configuración configuración.

  1. Regresa a la Consola del administrador de Google.
  2. Haz clic en el ícono Aplicaciones. La sección “Administración de Google Apps” .
  3. Haz clic en Google Workspace. La sección “Administración de apps de Google Workspace” .
  4. Desplázate hacia abajo y haz clic en Cloud Search. La “Configuración de Google Workspace” página .
  5. Haz clic en Aplicaciones de búsqueda. Las “Aplicaciones de Búsqueda” .
  6. Haz clic en el signo + redondo amarillo. Crea una nueva aplicación de búsqueda .
  7. En el campo Nombre visible, escribe "instructivo".
  8. Haz clic en CREAR.
  9. Haz clic en el ícono de lápiz junto a la aplicación de búsqueda recién creada. ("Editar aplicación de búsqueda"). Los “Detalles de la aplicación de búsqueda” .
  10. Anota el ID de aplicación.
  11. A la derecha de Fuentes de datos, haz clic en el ícono de lápiz.
  12. Junto a "Instructivo", haz clic en el botón de activación Habilitar. Este botón de activación habilita la fuente de datos del instructivo para la aplicación de búsqueda recién creada
  13. A la derecha del "instructivo" fuente de datos, haz clic en Opciones de visualización.
  14. Verifica todas las facetas.
  15. Haz clic en GUARDAR.
  16. Haz clic en LISTO.

Configura la aplicación web

Después de crear las credenciales y la app de búsqueda, actualiza la aplicación de Terraform para incluir estos valores de la siguiente manera:

  1. Desde la línea de comandos, cambia el directorio a `cloud-search-samples/end-to-end/search-interface/public.'
  2. Abre el archivo app.js con un editor de texto.
  3. Busca la variable searchConfig en la parte superior del archivo.
  4. Reemplaza [client-id] por el ID de cliente de OAuth que se creó antes.
  5. Reemplaza [application-id] por el ID de aplicación de búsqueda que se indica en sección anterior.
  6. Guarda el archivo.

Ejecuta la aplicación

Inicia la aplicación con este comando:

npm run start

Consulta el índice

Para consultar el índice con el widget de búsqueda, haz lo siguiente:

  1. Abre el navegador y ve a http://localhost:8080.
  2. Haz clic en Acceder para autorizar que la aplicación realice consultas en Cloud Search. por ti.
  3. En el cuadro de búsqueda, ingresa una consulta, como la palabra "prueba", y presiona Intro. La página debería mostrar los resultados de la consulta junto con las facetas y de paginación para navegar por los resultados.

Revisa el código

En las secciones restantes, se examina cómo se compila la interfaz de usuario.

Cómo cargar el widget

El widget y las bibliotecas relacionadas se cargan en dos fases. Primero, el arranque se carga la siguiente secuencia de comandos:

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

En segundo lugar, se llama a la devolución de llamada onLoad una vez que la secuencia de comandos está lista. Luego se carga. el cliente de la API de Google, Acceso con Google y las bibliotecas de widgets de Cloud Search.

app.js
/**
 * 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 controla la inicialización restante de la app. una vez que se carguen todas las bibliotecas requeridas.

Administra autorizaciones

Los usuarios deben autorizar la aplicación para que realice consultas en su nombre. Si bien el widget puedes pedirles a los usuarios que autoricen, puedes lograr una mejor experiencia del usuario manejando tú mismo la autorización.

Para la interfaz de búsqueda, la app presenta dos vistas diferentes en función según el estado de acceso del usuario.

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>

Durante la inicialización, se habilita la vista correcta y los controladores para se configuran los eventos de acceso y salida:

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

  // ...

}

Crea la interfaz de búsqueda

El widget de búsqueda requiere una pequeña cantidad de lenguaje de marcado HTML para la búsqueda. y mantener los resultados de la búsqueda:

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>

El widget se inicializa y se vincula a los elementos de entrada y contenedor. durante la inicialización:

app.js
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();

¡Felicitaciones! Completaste correctamente el instructivo. Continuar por instrucciones de limpieza.

Anterior Siguiente