アプリケーションでのOracle Android Client SDKの初期化

ここでは、アプリでAndroid SDKを初期化する方法について知っておく必要があります。

Applicationクラスで、Oracle Android Client SDKを初期化します。SDKの初期化では、SDKの初期化に使用できる様々な方法について説明します。SDKに含まれるJavaDocでは、使用可能なすべてのクラスについて説明します。

クライアント認証を無効にしてチャネルに接続する場合は、BotsConfiguration.BotsConfigurationBuilder()コンストラクタ関数に第2パラメータとしてfalseを渡します。
import android.app.Application;
import oracle.cloud.bots.mobile.core.Bots;
import oracle.cloud.bots.mobile.core.BotsCallback;
import oracle.cloud.bots.mobile.core.BotsConfiguration;
import oracle.cloud.bots.mobile.core.BotsSDKException;

public class YourApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        try {
                BotsConfiguration botsConfiguration = new BotsConfiguration.BotsConfigurationBuilder(<SERVER_URI>, false, getApplicationContext()) // Configuration to initialize the SDK
                    .channelId(<CHANNEL_ID>)
                    .userId(<USER_ID>)
                    .build();

                Bots.init(this, botsConfiguration, new BotsCallback() {  // Initialize the SDK
                    @Override
                    public void onSuccess(Response paramResponse) {
                        // Handle init success
                    }
                    @Override
                    public void onFailure(Response paramResponse) {
                        // Handle init failure
                    }
                });
        } catch (BotsSDKException e) {
           // Handle Exceptions thrown by SDK
        }
    }
}

クライアント認証を有効にしてチャネルに接続する場合は、少し変更を加える必要があります。BotsConfiguration.BotsConfigurationBuilder()コンストラクタ関数に第2パラメータとしてtrueを渡すとともに、JWTトークンを生成して渡すために使用できるAuthenticationTokenProviderタイプのインスタンスでauthTokenProviderプロパティを設定する必要があります。

このクラスはAuthenticationTokenProviderインタフェースを実装し、getAuthToken()関数をオーバーライドして、JWTトークンを生成して返す必要があります。この関数は、新しい接続を確立する必要がある場合や、既存のトークンが期限切れになった場合に、新しいトークンを生成するためにSDKによって使用されます。コードは次のようになります:
import android.app.Application;
import oracle.cloud.bots.mobile.core.AuthenticationTokenProvider;
import oracle.cloud.bots.mobile.core.Bots;
import oracle.cloud.bots.mobile.core.BotsCallback;
import oracle.cloud.bots.mobile.core.BotsConfiguration;
import oracle.cloud.bots.mobile.core.BotsSDKException;

public class YourApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        try {
                BotsConfiguration botsConfiguration = new BotsConfiguration.BotsConfigurationBuilder(<SERVER_URI>, true, getApplicationContext()) //  Configuration to initialize the SDK
                    .authTokenProvider(new AuthTokenProvider())
                    .build();

                Bots.init(this, botsConfiguration, new BotsCallback() {  // Initialize the SDK
                    @Override
                    public void onSuccess(Response paramResponse) {
                        // Handle init success
                    }
                    @Override
                    public void onFailure(Response paramResponse) {
                        // Handle init failure
                    }
                });
        } catch (BotsSDKException e) {
           // Handle Exceptions thrown by SDK
        }
    }

    private class AuthTokenProvider implements AuthenticationTokenProvider {
        @Override
        public String getAuthToken() {
            // Generate a new JWT Token and return
        }
    }
}
ユーザー・インタフェースを表示します:
import oracle.cloud.bots.mobile.ui.ConversationActivity;
 
...
 
 
ConversationActivity.show(this);