Use a GraphQL REST API para exibir sugestões criadas a partir de pesquisas de usuários externos

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 2 min. de leitura
  • Envie uma solicitação ao endpoint da GraphQL REST API para recuperar sugestões de pesquisa criadas a partir de pesquisas por usuários externos com registro automático. Este endpoint permite o acesso de usuários convidados não autenticados.

    Antes de Iniciar

    Certifique-se de que as seguintes condições sejam atendidas em sua instância:
    • O plug-in Domain Separation não está ativado. Para obter detalhes sobre este plug-in, consulte Plug- in Separação de domínios.
    • O plug-in Explicit Roles (com.glide.explicit_roles) está ativado. Para saber mais sobre este plug-in, consulte Funções explícitas.
    • Usuários externos com a função snc_external enviaram pesquisas em aplicações de pesquisa que geram sugestões de pesquisa, como ServiceNow® Portal de serviços, Now Mobileou ServiceNow® Virtual Agent.
    • A propriedade do sistema glide.search.suggestions.allow_guest_user está definida como verdadeira. Para obter detalhes sobre como definir um valor de propriedade do sistema, consulte Adicionar uma propriedade do sistema.
    Obtenha o sys_id da aplicação de pesquisa para a qual você deseja recuperar sugestões de pesquisa de usuário externo.
    Nota:
    Usuários com as funções search_application_admin, agent_workspace_user ou workspace_user podem obter este sys_id copiando-o do registro da aplicação de pesquisa na tabela Configuração da aplicação de pesquisa [sys_search_context_config].

    Baixe um cliente GraphQL de terceiros, como o cliente GraphiQL, Insomnia ou Postman.

    Função necessária: nenhuma

    Por Que e Quando Desempenhar Esta Tarefa

    As sugestões de pesquisa criam sugestões para pesquisas realizadas por usuários externos com registro automático. Quando a propriedade do sistema glide.search.suggestions.allow_guest_user é definida como verdadeira, usuários convidados não autenticados podem acessar o endpoint da GraphQL REST API da sua instância para recuperar sugestões de pesquisa de usuário externo para uma aplicação de pesquisa.

    Nenhuma autenticação é necessária ou imposta para este endpoint da GraphQL REST API.
    Nota:
    Usuários convidados não autenticados só podem recuperar sugestões de pesquisa do domínio global. Se a separação de domínio estiver habilitada em sua instância, os usuários convidados não poderão recuperar sugestões de pesquisa.

    Procedimento

    1. No cliente GraphQL de terceiros, configure uma nova solicitação que usa o método HTTP POST.
    2. Defina o endpoint da solicitação para o endpoint da GraphQL REST API para sua instância, https://<instance name> .service-now.com/api/now/graphql .
    3. Defina o corpo da solicitação para a seguinte consulta GraphQL, substituindo<search_application_sys_id> com o sys_id da aplicação de pesquisa para a qual você deseja recuperar sugestões de pesquisa de usuário externo:
      {
        GlideSearch_Query {
          suggestions(searchContextConfigId: "<search_application_sys_id>", searchTerm: "") {
            term
            data {
              name
              records {
                type
                columns {
                  label
                  fieldName
                  value
                  displayValue
                }
              }
            }
          }
        }
      }

    Resultado

    O sistema retorna sugestões de pesquisa de pesquisas de aplicações por usuários externos registrados automaticamente como um objeto JSON, conforme mostrado neste exemplo:
    {
      "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"
              }
            ]
          }
        }
      }
    }