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 incorporado. 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 nueva shell y continúa allí.

  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 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 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, ingresa "instructivo".

  7. En el campo Orígenes autorizados de JavaScript, haz clic en AGREGAR URI. Aparecerá un campo "URIs" vacío.

  8. En el campo URIs, 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 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 predeterminada.

  1. Regresa a la Consola del administrador de Google.
  2. Haz clic en el ícono de Apps. Aparecerá la página "Administración de aplicaciones".
  3. Haz clic en Google Workspace. Aparecerá la página "Administración de apps de Google Workspace".
  4. Desplázate hacia abajo y haz clic en Búsqueda en la nube. Aparecerá la página “Configuración de Google Workspace”.
  5. Haz clic en Aplicaciones de búsqueda. Aparecerá la página "Buscar aplicaciones".
  6. Haz clic en el signo + amarillo redondo. Aparecerá el diálogo "Create a new search application".
  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 que creaste recientemente ("Editar aplicación de búsqueda"). Aparecerá la página "Buscar detalles de la aplicación".
  10. Toma nota del 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 creada recientemente.
  13. A la derecha de la fuente de datos "instructivo", haz clic en Opciones de visualización.
  14. Revisa 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 de 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 creaste anteriormente.
  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

Ejecuta el siguiente comando para iniciar la aplicación:

npm run start

Consulta el índice

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

  1. Abre el navegador y navega a http://localhost:8080.
  2. Haz clic en Acceder para autorizar a la app a consultar Cloud Search en tu nombre.
  3. En el cuadro de búsqueda, ingresa una búsqueda, como la palabra “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 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 se encarga de la inicialización restante de la app una vez que se cargan todas las bibliotecas requeridas.

Controla la autorización

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

En el caso de 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();

  // ...

}

Cómo crear 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 el instructivo correctamente. Continúa para ver las instrucciones de limpieza.

Anterior Siguiente