Verwenden Sie die GraphQL-REST-API, um Vorschläge anzuzeigen, die aus externen Benutzersuchen erstellt wurden

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 2 Minuten Lesedauer
  • Senden Sie eine Anforderung an den GraphQL-REST-API-Endpunkt, um Suchvorschläge abzurufen, die aus Suchen von selbst registrierten externen Benutzern erstellt wurden. Dieser Endpunkt ermöglicht den Zugriff durch nicht authentifizierte Gastbenutzer.

    Vorbereitungen

    Stellen Sie sicher, dass die folgenden Bedingungen in Ihrer Instanz erfüllt sind:
    • Das Plugin „Domain Separation“ ist nicht aktiviert. Weitere Informationen zu diesem Plugin finden Sie unter Plugin für Domänentrennung.
    • Das Plugin „Explicit Roles“ (com.glide.explicit_roles) ist aktiviert. Weitere Informationen zu diesem Plugin finden Sie unter Explizite Rollen.
    • Externe Benutzer mit der Rolle „snc_external“ haben Suchen in Suchanwendungen übermittelt, die Suchvorschläge generieren, z. B. ServiceNow® Serviceportal, Now Mobileoder ServiceNow® Virtual Agent.
    • Die Systemeigenschaft glide.search.suggestions.allow_guest_user ist auf truefestgelegt. Weitere Informationen zum Festlegen eines Systemeigenschaftenwerts finden Sie unter Systemeigenschaft hinzufügen.
    Rufen Sie die sys_id der Suchanwendung ab, für die Sie Suchvorschläge externer Benutzer abrufen möchten.
    Hinweis:
    Benutzer mit den Rollen „search_application_admin“, „agent_workspace_user“ oder „workspace_user“ können diese sys_id abrufen, indem sie sie aus dem Suchanwendungsdatensatz in der Tabelle „Suchanwendungskonfiguration“ [sys_search_context_config] kopieren.

    Laden Sie einen GraphQL-Client einer Drittpartei herunter, z. B. GraphiQL, Insomnie oder Postman.

    Erforderliche Rolle: keine

    Warum und wann dieser Vorgang ausgeführt wird

    Suchvorschläge erstellt Vorschläge für Suchvorgänge, die von selbst registrierten externen Benutzern durchgeführt werden. Wenn die Systemeigenschaft glide.search.suggestions.allow_guest_user auf truefestgelegt ist, können nicht authentifizierte Gastbenutzer auf den GraphQL-REST-API-Endpunkt für Ihre Instanz zugreifen, um Suchvorschläge externer Benutzer für eine Suchanwendung abzurufen.

    Für diesen GraphQL-REST-API-Endpunkt ist keine Authentifizierung erforderlich oder erzwungen.
    Hinweis:
    Nicht authentifizierte Gastbenutzer können Suchvorschläge nur aus der globalen Domäne abrufen. Wenn die Domänentrennung in Ihrer Instanz aktiviert ist, können Gastbenutzer keine Suchvorschläge abrufen.

    Prozedur

    1. Konfigurieren Sie in Ihrem GraphQL-Client einer Drittpartei eine neue Anforderung, die die HTTP POST-Methode verwendet.
    2. Legen Sie den Endpunkt für die Anforderung auf den GraphQL-REST-API-Endpunkt für Ihre Instanz fest: https://<instance name> .service-now.com/api/now/graphql .
    3. Legen Sie den Anforderungstext auf die folgende GraphQL-Abfrage fest und ersetzen Sie<search_application_sys_id> mit der sys_id der Suchanwendung, für die Sie externe Benutzersuchvorschläge abrufen möchten:
      {
        GlideSearch_Query {
          suggestions(searchContextConfigId: "<search_application_sys_id>", searchTerm: "") {
            term
            data {
              name
              records {
                type
                columns {
                  label
                  fieldName
                  value
                  displayValue
                }
              }
            }
          }
        }
      }

    Ergebnisse

    Das System gibt Suchvorschläge aus Anwendungssuchen von selbst registrierten externen Benutzern als JSON-Objekt zurück, wie in diesem Beispiel gezeigt:
    {
      "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"
              }
            ]
          }
        }
      }
    }