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

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Senden Sie eine Anforderung an den GraphQL-REST-API-Endpunkt, um Suchvorschläge abzurufen, die aus Suchen von selbst registrierten externen Anwendern 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 Domain Separation-Plugin.
    • Das Plugin „Explicit Roles“ (com.glide.explicit_roles) ist aktiviert. Weitere Informationen zu diesem Plugin finden Sie unter Explizite Rollen.
    • Externe Anwender 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. Einzelheiten zum Festlegen eines Werts für eine Systemeigenschaft finden Sie unter Systemeigenschaft hinzufügen.
    Rufen Sie die sys_id der Suchanwendung ab, für die Sie Suchvorschläge externer Anwender abrufen möchten.
    Hinweis:
    Benutzer mit den Rollen „search_application_admin“, „agent_workspace_user“ oder „workspace_user“ können diese sys_id erhalten, 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. den GraphiQL-, Insomlia- oder Postman-Client.

    Erforderliche Rolle: keine

    Warum und wann dieser Vorgang ausgeführt wird

    Suchvorschläge erstellt Vorschläge für Suchen, die von selbst registrierten externen Anwendern 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 in Ihrer Instanz Domain Separation aktiviert ist, können Gastanwender keine Suchvorschläge abrufen.

    Prozedur

    1. Konfigurieren Sie in Ihrem GraphQL-Client eines Drittanbieters 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 https://fest.<instance name> .service-now.com/api/now/graphql .
    3. Legen Sie den Anforderungstext auf die folgende GraphQL-Abfrage fest: ersetzen<search_application_sys_id> mit der sys_id der Suchanwendung, für die Sie Suchvorschläge für externe Anwender 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 Anwendern als JSON-Objekt zurück, wie im folgenden 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"
              }
            ]
          }
        }
      }
    }