Cómo configurar la interfaz de usuario

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

Instala dependencias

  1. Si el conector aún está indexando el repositorio, abre una shell nueva y continúa ahí.

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

  3. A fin de descargar las dependencias necesarias para ejecutar 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 las APIs de Cloud Search. 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. Aparecerá la página "Crear ID de cliente de OAuth".

  4. (Opcional) Si aún no configuraste la pantalla de consentimiento, haz clic en CONFIGURAR PANTALLA DE CONSENTIMIENTO. Aparecerá la pantalla “Consentimiento de OAuth”.

    1. Haz clic en Interno y, luego, en CREAR. Aparecerá otra pantalla de “Consentimiento de OAuth”.

    2. Completa los campos obligatorios. Para obtener más instrucciones, consulta la sección de consentimiento del usuario de Cómo configurar 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. Aparecerá el campo “URIs” vacío.

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

  9. Haz clic en CREAR. Aparecerá la pantalla “Se creó el cliente de OAuth”.

  10. Anota el ID de cliente. Este valor se usa para identificar la aplicación cuando se solicita la autorización del usuario con OAuth2. El secreto del cliente no es necesario para esta implementación.

  11. Haz clic en OK.

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

  1. Regresa a la Consola del administrador de Google.
  2. Haz clic en el ícono Aplicaciones. Aparecerá la página "Administración de aplicaciones".
  3. Haz clic en Google Workspace. Aparecerá la página “Apps y administración de Google Workspace”.
  4. Desplázate hacia abajo y haz clic en Cloud Search. Aparecerá la página “Configuración de Google Workspace”.
  5. Haz clic en Aplicaciones de búsqueda. Aparecerá la página "Search Appplications".
  6. Haz clic en el signo + redondo y amarillo. Se mostrará el diálogo "Crear 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”). Aparecerá la página "Buscar detalles de la aplicación".
  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 de la fuente de datos "instructivo", 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 configuración de la aplicación 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 indicó en la 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 a fin de autorizar a la app para que realice consultas en Cloud Search por ti.
  3. En el cuadro de búsqueda, ingresa una consulta, como la palabra "test" (prueba) y presiona Intro. La página debe mostrar los resultados de la consulta junto con las facetas y los controles 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, se carga la secuencia de comandos de arranque:

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, carga el cliente de la API de Google, el Acceso con Google y las bibliotecas del widget 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 cargan todas las bibliotecas requeridas.

Administra autorizaciones

Los usuarios deben autorizar la aplicación para que realice consultas en su nombre. Si bien el widget puede solicitar a los usuarios que autoricen, puedes lograr una mejor experiencia del usuario si administras la autorización por tu cuenta.

Para la interfaz de búsqueda, la app presenta dos vistas diferentes 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 se configuran los controladores para 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 entrada de búsqueda y para contener 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. Continúa con las instrucciones de limpieza.

Anterior Siguiente