アプリケーションで NowSDK を初期化する

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:3分
  • アプリケーションで Mobile SDK を使用するには、SDK の初期化、承認、およびログ記録を実行する必要があります。

    NowSDK を使用すると、SDK を設定するように要求され、SDK からのコールバックが提供されます。SDK が構成されると、アプリケーションは機能サービスとそれに関連する API を使用できるようになります。このセットアップ/構成は、 ServiceNow インスタンスへの認証呼び出しを行うのに役立ちます。

    以下は、 Android アプリケーションで NowSDK を初期化する方法の例です。
    //Helper class to encapsulate value needed to initialize the sdk
    data class NowSDKSettings(val instanceBaseURL : String, val clientId: String, val user: String?)
    
    class SampleApplication : Application(), NowSDKAuthorizationProviding, DevicePermissionDelegate {
    
        private val nowSdkSettings = NowSDKSettings(
            instanceBaseURL = "https://instance-name.service-now.com",
            clientId = "client_id",
            user = "user"
        )
    
        private val coroutineScope = CoroutineScope(Dispatchers.IO)
    
        private val nowSDKConfiguration = NowSDKConfiguration(this, this, NowLogLevel.Debug)
    
        override fun onCreate() {
            super.onCreate()
            NowSDK.configure(this, nowSDKConfiguration)
        }
    
        override fun requestAuthorization(
            instanceURL: URL,
            callback: Consumer<List<AuthorizationToken>?>
        ) {
            coroutineScope.launch {
                when {
                    nowSdkSettings.user.isNullOrBlank().not() -> authorizeWithJWT(
                        callback = callback,
                        user = nowSdkSettings.user,
                        clientId = nowSdkSettings.clientId
                    )
    
                    else -> authorizeWithGuest(callback = callback)
                }
            }
        }
    
        override fun canRequestPermission(permission: DevicePermission): Boolean {
            return true
        }
    
        private fun authorizeWithJWT(
            callback: Consumer<List<AuthorizationToken>?>,
            user: String?,
            clientId: String
        ) {
            //Get JWT token needed for the sdk initialization.
            val jwtToken ="jwt_token"
    
            callback.accept(listOf(AuthorizationToken(AuthorizationTokenType.JWT, jwtToken)))
        }
    
        private fun authorizeWithGuest(callback: Consumer<List<AuthorizationToken>?>) {
            callback.accept(
                listOf(
                    AuthorizationToken(
                        AuthorizationTokenType.Guest,
                        ""
                    )
                )
            )
        }
    }