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

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

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

    アプリケーションで NowSDK Android を初期化する方法の例を次に示します。
    //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,
                        ""
                    )
                )
            )
        }
    }