Utiliser l’API REST GraphQL pour afficher les suggestions créées à partir de recherches d’utilisateurs externes

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 2 minutes de lecture
  • Soumettez une demande au point de terminaison GraphQL REST API pour récupérer les suggestions de recherche créées à partir de recherches effectuées par des utilisateurs externes enregistrés automatiquement. Ce point de terminaison autorise l’accès aux utilisateurs invités non authentifiés.

    Avant de commencer

    Assurez-vous que les conditions suivantes sont remplies dans votre instance :
    • Le module d’extension Séparation en domaines n’est pas activé. Pour en savoir plus sur ce module d’extension, reportez-vous à la rubrique Module d’extension Séparation de domaine.
    • Le module d’extension Explicit Roles (com.glide.explicit_roles) est activé. Pour en savoir plus sur ce module d’extension, reportez-vous à la rubrique Rôles explicites.
    • Les utilisateurs externes disposant du rôle snc_external ont soumis des recherches dans des applications de recherche qui génèrent des suggestions de recherche, telles que ServiceNow® Portail de services, Now Mobileou ServiceNow® Agent virtuel.
    • La glide.search.suggestions.allow_guest_user propriété système est définie sur true. Pour plus d’informations sur la définition d’une valeur de propriété système, reportez-vous à la section Ajouter une propriété système.
    Obtenez le sys_id de l’application de recherche pour laquelle vous souhaitez récupérer les suggestions de recherche de l’utilisateur externe.
    Remarque :
    Les utilisateurs disposant des rôles search_application_admin, agent_workspace_user ou workspace_user peuvent obtenir ce sys_id en le copiant à partir de l’enregistrement de l’application de recherche dans la table Configuration de l’application de recherche [sys_search_context_config].

    Téléchargez un client GraphQL tiers, tel que le client GraphiQL, Insomnia ou Postman.

    Rôle requis : aucun

    Pourquoi et quand exécuter cette tâche

    Suggestions de recherche : crée des suggestions pour les recherches effectuées par les utilisateurs externes enregistrés automatiquement. Lorsque la propriété système est définie sur vrai, les glide.search.suggestions.allow_guest_user utilisateurs invités non authentifiés peuvent accéder au point de terminaison REST API GraphQL de votre instance afin de récupérer les suggestions de recherche d’un utilisateur externe pour une application de recherche.

    Aucune authentification n’est requise ou appliquée pour ce point de terminaison d’API REST GraphQL.
    Remarque :
    Les utilisateurs invités non authentifiés peuvent uniquement récupérer des suggestions de recherche à partir du domaine global. Si Séparation de domaine est activée dans votre instance, les utilisateurs invités ne peuvent récupérer aucune suggestion de recherche.

    Procédure

    1. Dans votre client GraphQL tiers, configurez une nouvelle requête qui utilise la méthode HTTP POST.
    2. Définissez le point de terminaison de la demande vers le point de terminaison de l’API REST GraphQL pour votre instance, https://<nom d’instance>.service-now.com/api/now/graphql.
    3. Définissez le corps de la demande sur la requête GraphQL suivante, en remplaçant <search_application_sys_id> par le sys_id de l’application de recherche pour laquelle vous souhaitez récupérer les suggestions de recherche de l’utilisateur externe :
      {
        GlideSearch_Query {
          suggestions(searchContextConfigId: "<search_application_sys_id>", searchTerm: "") {
            term
            data {
              name
              records {
                type
                columns {
                  label
                  fieldName
                  value
                  displayValue
                }
              }
            }
          }
        }
      }

    Résultats

    Le système renvoie les suggestions de recherche des recherches d’applications effectuées par des utilisateurs externes enregistrés automatiquement sous la forme d’un objet JSON, comme illustré dans l’exemple suivant :
    {
      "data": {
        "GlideSearch_Query": {
          "suggestions": {
            "term": "",
            "data": [
              {
                "records": [
                  {
                    "type": "POPULAR_QUERY",
                    "columns": [
                      {
                        "label": "name",
                        "displayValue": "automatic replies",
                        "value": "automatic replies",
                        "fieldName": "name"
                      }
                    ]
                  },
                  {
                    "type": "POPULAR_QUERY",
                    "columns": [
                      {
                        "label": "name",
                        "displayValue": "contact group",
                        "value": "contact group",
                        "fieldName": "name"
                      }
                    ]
                  },
                  {
                    "type": "POPULAR_QUERY",
                    "columns": [
                      {
                        "label": "name",
                        "displayValue": "tablet",
                        "value": "tablet",
                        "fieldName": "name"
                      }
                    ]
                  },
                  {
                    "type": "POPULAR_QUERY",
                    "columns": [
                      {
                        "label": "name",
                        "displayValue": "laptop",
                        "value": "laptop",
                        "fieldName": "name"
                      }
                    ]
                  },
                  {
                    "type": "POPULAR_QUERY",
                    "columns": [
                      {
                        "label": "name",
                        "displayValue": "new email account",
                        "value": "new email account",
                        "fieldName": "name"
                      }
                    ]
                  }
                ],
                "name": "Popular searches"
              }
            ]
          }
        }
      }
    }