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

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間: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)
        }
      }
    }

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

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