仮想チャットと ライブエージェント チャットの実装

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:4分
  • このMobile SDKを使用すると、Androidアプリケーション内に仮想チャットサービスとライブエージェントチャットサービスを簡単に実装できます。

    チャットサービスを作成するには、 NowChatSDK 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」を参照してください。

    チャット ライブエージェント および 仮想エージェント にコンテキスト変数を渡す

    NowChatService-start() 関数で contextData パラメーターを渡すことで、チャットセッションの開始時にチャットコンテキスト変数を渡すことができます。チャットコンテキスト変数の詳細については、「 Live agent chat context variables」を参照してください。

    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)
        }
      }
    }

    チャットユーザーインターフェイスのテーマ

    start() 呼び出しでテーマオブジェクトを渡すことで、ライブエージェント仮想エージェントチャット UI の色をカスタマイズできます。カスタマイズ可能な要素のリストについては、「 NowChatService - launchIntent(context:Context, nowChatTheme:NowChatTheme):インテント」を参照してください。デフォルトでは、チャット UI はすべての NowSDK UI 要素に nowUIColor テーマを使用します。チャット UI にテーマを適用する方法の例については、サンプルアプリケーションを参照してください。