Authentication - Android

TapTalk.io Omnichannel SDK provides some essential methods to handle user authentication.

Authenticate User (Optional)

You can authenticate the user that is currently logged in before calling navigateToOneTalk. To do this, you can add an authentication method in the previously created Java Module. (See Get Started - Android). We will add a @ReactMethod named authenticateUser.

OneTalkStarterModule.java
import android.content.Intent;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;

import org.jetbrains.annotations.NotNull;

class OneTalkStarterModule extends ReactContextBaseJavaModule {

    OneTalkStarterModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @NotNull
    @Override
    public String getName() {
        return "OneTalkStarter";
    }

    @ReactMethod
    void navigateToOneTalk() {
        Intent intent = new Intent(getReactApplicationContext(), OneTalkWrapperActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        getReactApplicationContext().startActivity(intent);
    }
    
    @ReactMethod
    void authenticateUser(String name, String email, Callback successCallback, Callback errorCallback) {
        TapTalkLive.authenticateUser(name, email, new TTLCommonListener() {
            @Override
            public void onSuccess(String successMessage) {
                successCallback.invoke(successMessage);
            }
            @Override
            public void onError(String errorCode, String errorMessage) {
                errorCallback.invoke(errorMessage);
            }
        });
    }
}

Parameters

name: (String) name of the user to be authenticated

email: (String) email of the user to be authenticated

successCallback: (Callback) invoked when the authentication is successful

errorCallback: (Callback) invoked when an error occurred during authentication

You can then call the method from JavaScript as such:

NativeModules.OneTalkStarter.authenticateUser('USER_NAME', 
                                              'USER_EMAIL',
                                              (successMessage) => {
      // Successfully authenticated user
    },
                                              (errorMessage) => {
      // An error occurred during authentication
    }
  );

After successfully authenticated, user will no longer be required to fill name and email to create a case.

Logout and Clear TapTalkLive Data

You may also add another method when you need to logout and clear all local cached data from Omnichannel SDK. We will name this method clearAllTapLiveData.

OneTalkStarterModule.java
import ...

class OneTalkStarterModule extends ReactContextBaseJavaModule {

    ...
    
    @ReactMethod
    void clearAllTapLiveData() {
        TapTalkLive.clearAllTapLiveData();
    }
}

You can then call the method from JavaScript when needed.

NativeModules.OneTalkStarter.clearAllTapLiveData();

Last updated

#621:

Change request updated