Configurer l'interface utilisateur

Cette page du tutoriel Google Cloud Search explique comment configurer une application de recherche personnalisée à l'aide du widget Recherche intégrable. Pour commencer depuis le début de ce tutoriel, consultez le tutoriel de mise en route de Cloud Search.

Installer des dépendances

  1. Si le connecteur n'a pas fini d'indexer le dépôt, ouvrez une nouvelle interface système et poursuivez la procédure dans celle-ci.

  2. Depuis la ligne de commande, remplacez le répertoire par cloud-search-samples/end-to-end/search-interface.

  3. Pour télécharger les dépendances nécessaires à l'exécution du serveur Web, exécutez la commande suivante:

npm install

Créer les identifiants de l'application de recherche

Le connecteur requiert les identifiants du compte de service pour appeler les API Cloud Search. Pour créer les identifiants:

  1. Revenez à la console Google Cloud.

  2. Dans le volet de navigation de gauche, cliquez sur Identifiants.

  3. Dans la liste déroulante Créer des identifiants, sélectionnez ID client OAuth. La page "Créer un ID client OAuth" s'affiche.

  4. (Facultatif) Si vous n'avez pas configuré l'écran d'autorisation, cliquez sur CONFIGURER L'ÉCRAN D'AUTORISATION. L'écran d'autorisation OAuth s'affiche.

    1. Cliquez sur Interne, puis sur CRÉER. Un autre écran « Consentement OAuth » s'affiche.

    2. Renseignez les champs obligatoires. Pour en savoir plus, consultez la section "Consentement de l'utilisateur" de la page Configurer OAuth 2.0.

  5. Cliquez sur la liste déroulante Type d'application, puis sélectionnez Application Web.

  6. Dans le champ Nom, saisissez "tutorial".

  7. Dans le champ Origines JavaScript autorisées, cliquez sur Ajouter un URI. Un champ "URI" vide s'affiche.

  8. Dans le champ URI, saisissez http://localhost:8080.

  9. Cliquez sur CRÉER. L'écran "Client OAuth créé" s'affiche.

  10. Notez l'ID client. Cette valeur permet d'identifier l'application lors de la demande d'autorisation de l'utilisateur avec OAuth2. Le code secret du client n'est pas nécessaire pour cette implémentation.

  11. Cliquez sur OK.

Créer l'application de recherche

Créez ensuite une application de recherche dans la console d'administration. L'application de recherche est une représentation virtuelle de l'interface de recherche et de sa configuration par défaut.

  1. Revenez à la console d'administration Google.
  2. Cliquez sur l'icône Applications. La page "Administration des applications" s'affiche.
  3. Cliquez sur Google Workspace. La page "Apps Google Workspace administration" (Administration des applications Google Workspace) s'affiche.
  4. Faites défiler la page vers le bas et cliquez sur Cloud Search. La page "Paramètres de Google Workspace" s'affiche.
  5. Cliquez sur Applications de recherche. La page "Search Appplications" (Recherche d'applications) s'affiche.
  6. Cliquez sur le bouton jaune + rond. La boîte de dialogue "Créer une application de recherche" s'affiche.
  7. Dans le champ Nom à afficher, saisissez "tutorial".
  8. Cliquez sur CRÉER.
  9. Cliquez sur l'icône en forme de crayon à côté de l'application de recherche nouvellement créée ("Modifier l'application de recherche"). La page "Rechercher des informations sur l'application" s'affiche.
  10. Notez l'ID application.
  11. À droite de Sources de données, cliquez sur l'icône en forme de crayon.
  12. À côté de "Tutoriel", cliquez sur le bouton Activer. Ce bouton permet d'activer la source de données du tutoriel pour l'application de recherche que vous venez de créer.
  13. À droite de la source de données "tutoriel", cliquez sur Options d'affichage.
  14. Vérifiez tous les attributs.
  15. Cliquez sur ENREGISTRER.
  16. Cliquez sur OK.

Configurer l'application Web

Après avoir créé les identifiants et l'application de recherche, mettez à jour la configuration de l'application pour inclure ces valeurs comme suit:

  1. Dans la ligne de commande, remplacez le répertoire par "cloud-search-samples/end-to-end/search-interface/public".
  2. Ouvrez le fichier app.js avec un éditeur de texte.
  3. Recherchez la variable searchConfig en haut du fichier.
  4. Remplacez [client-id] par l'ID client OAuth créé précédemment.
  5. Remplacez [application-id] par l'ID de l'application de recherche noté dans la section précédente.
  6. Enregistrez le fichier.

Exécuter l'application

Démarrez l'application en exécutant la commande suivante:

npm run start

Interroger l'index

Pour interroger l'index à l'aide du widget Recherche:

  1. Ouvrez votre navigateur et accédez à http://localhost:8080.
  2. Cliquez sur Se connecter pour autoriser l'application à interroger Cloud Search en votre nom.
  3. Dans le champ de recherche, saisissez une requête, par exemple le mot "test", puis appuyez sur Entrée. La page doit afficher les résultats de la requête, ainsi que les attributs et les commandes de pagination permettant de les parcourir.

Comprendre le code

Les autres sections examinent la construction de l'interface utilisateur.

Charger le widget

Le widget et les bibliothèques associées sont chargés en deux phases. Tout d'abord, le script d'amorçage est chargé:

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

Ensuite, le rappel onLoad est appelé une fois le script prêt. Il charge ensuite le client API Google, Google Sign-In et les bibliothèques de widgets 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'initialisation restante de l'application est gérée par initializeApp une fois toutes les bibliothèques requises chargées.

Gérer l'autorisation

Les utilisateurs doivent autoriser l'application à effectuer des requêtes en leur nom. Bien que le widget puisse inviter les utilisateurs à accorder une autorisation, vous pouvez améliorer l'expérience utilisateur en gérant vous-même l'autorisation.

Pour l'interface de recherche, l'application présente deux affichages différents en fonction de l'état de connexion de l'utilisateur.

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>

Lors de l'initialisation, la vue appropriée est activée et les gestionnaires des événements de connexion et de déconnexion sont configurés:

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

  // ...

}

Créer l'interface de recherche

Le widget Recherche nécessite une petite quantité de balisage HTML pour l'entrée de recherche et le stockage des résultats de recherche:

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>

Le widget est initialisé et lié aux éléments d'entrée et de conteneur lors de l'initialisation:

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

Félicitations, vous avez terminé le tutoriel. Continuez pour obtenir des instructions de nettoyage.

Précédent Suivant