---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# 仮想チャットと ライブエージェント チャットを実装する

# 仮想チャットと ライブエージェント チャットを実装する {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：4分

このMobile SDKを使用すると、Androidアプリケーション内に仮想チャットサービスおよびライブエージェントチャットサービスを簡単に実装できます。
[NowChatSDK](https://servicenow-prod.fluidtopics.net/7hBMXAM9GF4owBeitDwejA#NowChatSDKAndroidAPI "NowChatService クラスは、NowChat と対話する NowChatService を作成するために必要な関数を提供します。NowChat は、アプリケーション内に ライブエージェント と 仮想エージェント を埋め込む機能を提供します。") API を使用してチャットサービスを作成します。サービスが作成されたら、チャットユーザーインターフェイスを開始する必要があります。

以下は、チャットサービスを作成してインターフェイスを開始する方法を示すスニペットです。

    /**
     * Helper class used to handle different Now service instances.
     */
    @Singleton
    class SdkManager @Inject constructor() {

        private var chatService: NowChatService? = null

        /**
         * Create the NowChatService once in the lifetime of the application, inside the Application class or another manager class
         * that will be injected into other classes via dagger/hilt.
         * NowChatService should be created after initializing the NowSDK.
         */
        suspend fun getNowChatService(): NowChatService? {
            if (chatService != null) return chatService

            return NowChatSDK.makeChatService(URL("https://instance-name.service-now.com"),
                object : NowChatSdkCallbacks {})
                .getOrThrow()
                .also { this.chatService = it }
        }
    }

    //Activity that will start the NowChat
    class MainActivity : AppCompatActivity() {

        @Inject
        lateinit var sdkManager: SdkManager

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)

            //Start NowChat using the activity
            lifecycleScope.launch {
                sdkManager.getNowChatService()?.start(this@MainActivity)
            }
        }
    }

アプリケーション内でチャット機能を利用する前に、ServiceNowインスタンス内で仮想エージェントを設定する必要があります。詳細については、「[Virtual Agent](https://www.servicenow.com/docs/access?context=virtual-agent-landing-page&version=xanadu&pubname=xanadu-conversational-interfaces&ft:locale=en-US)」を参照してください。

## ライブエージェントおよび仮想エージェントチャットへのコンテキスト変数の受け渡し {#mobsdk-and-imp-chat__section_tcq_3tj_k1c}

[NowChatService-start()](https://servicenow-prod.fluidtopics.net/UKeTEHz5YQSvZWaZ5LuDkg#NChatServA-start_O_O "指定された NowChat アクティビティを起動します。") 関数で contextData パラメーターを渡すことで、チャットセッションの開始時にチャットコンテキスト変数を渡すことができます。チャットコンテキスト変数の詳細については、「 [Live agent chat context variables](https://www.servicenow.com/docs/access?context=live-agent-chat-context-vars&version=xanadu&pubname=xanadu-conversational-interfaces&ft:locale=en-US)」を参照してください。  

    class MainActivity : AppCompatActivity() {
      @Inject

      lateinit var sdkManager: SdkManager

      override fun onCreate(savedInstanceState: Bundle?) { 
        super.onCreate(savedInstanceState)

        val contextData = mapOf("sys_id" to "123456789", "table" to "wm_task")
        //Start NowChat using the activity 
        lifecycleScope.launch {
          sdkManager.getNowChatService()?.start(this@MainActivity, contextData = contextData)
        }
      }
    }

## チャットユーザーインターフェイスのテーマを設定する

ライブエージェントと仮想エージェントチャット UI の色をカスタマイズするには、start() 呼び出しでテーマオブジェクトを渡します。カスタマイズできる要素の一覧については、「 [NowChatService - launchIntent(context:Context, themeColors:NowChatTheme):インテント](https://servicenow-prod.fluidtopics.net/UKeTEHz5YQSvZWaZ5LuDkg#NChatServA-launchIntent_O_O "NowChat アクティビティを開くために使用するインテントを起動します。通常、[ android.app.PendingIntent] の作成に使用されます。")」を参照してください。デフォルトでは、チャット UI はすべての NowSDK UI 要素に nowUIColor テーマを使用します。チャット UI にテーマを適用する方法の例については、サンプルアプリケーションを参照してください。

