GraphQL REST API を使用して外部ユーザー検索から作成された提案を表示する

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む4読むのに数分
  • GraphQL REST API エンドポイントに要求を送信して、自己登録された外部ユーザーによる検索から作成された検索提案を取得します。このエンドポイントは、認証されていないゲストユーザーによるアクセスを許可します。

    始める前に

    インスタンスで次の条件が満たされていることを確認します。
    • Domain Separation プラグインが有効になっていません。このプラグインの詳細については、「Domain Separation プラグイン」を参照してください。
    • 明示的なロールプラグイン (com.glide.explicit_roles) が有効になっています。このプラグインの詳細については、「明示的なロール」を参照してください。
    • snc_external ロールを持つ外部ユーザーが、ServiceNow® サービスポータルNow MobileServiceNow® 仮想エージェント などの検索提案を生成する検索アプリケーションで検索を送信しました。
    • glide.search.suggestions.allow_guest_user システムプロパティが true に設定されています。システムプロパティ値の設定の詳細については、「システムプロパティを追加する」を参照してください。
    外部ユーザーの検索提案を取得したい検索アプリケーションの sys_id を取得します。
    注:
    search_application_admin、agent_workspace_user、または workspace_user ロールを持つユーザーは、検索アプリケーション構成 [sys_search_context_config] テーブルの検索アプリケーションレコードからこの sys_id をコピーして取得できます。

    GraphiQL、Insominia、Postman クライアントなどのサードパーティの GraphQL クライアントをダウンロードします。

    必要なロール:なし

    このタスクについて

    検索提案は、自己登録した外部ユーザーが実行する検索の提案を作成します。glide.search.suggestions.allow_guest_user システムプロパティが true に設定されている場合、認証されていないゲストユーザーは、インスタンスの GraphQL REST API エンドポイントにアクセスして、検索アプリケーションの外部ユーザー検索提案を取得できます。

    この GraphQL REST API エンドポイントでは認証は不要であり、強制されることもありません。
    注:
    認証されていないゲストユーザーは、グローバルドメインからのみ検索提案を取得できます。インスタンスでドメイン分離が有効になっている場合、ゲストユーザーは検索提案を取得できません。

    手順

    1. サードパーティの GraphQL クライアントで、HTTP POST メソッドを使用する新しい要求を構成します。
    2. 要求のエンドポイントをインスタンスの GraphQL REST API エンドポイント (https://<instance name>.service-now.com/api/now/graphql) に設定します。
    3. 要求本体を次の GraphQL クエリに設定し、<search_application_sys_id> を外部ユーザー検索提案を取得する検索アプリケーションの sys_id で置き換えます。
      {
        GlideSearch_Query {
          suggestions(searchContextConfigId: "<search_application_sys_id>", searchTerm: "") {
            term
            data {
              name
              records {
                type
                columns {
                  label
                  fieldName
                  value
                  displayValue
                }
              }
            }
          }
        }
      }

    タスクの結果

    次の例に示すように、JSON オブジェクトとしての、自己登録された外部ユーザーによるアプリケーション検索から検索提案が返されます。
    {
      "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"
              }
            ]
          }
        }
      }
    }