In order to use Stringee Live Chat API, you need to have a widget key which will be used to identify your portal. You can get that key by doing the following steps:
Copy the Stringee SDK JAR file to the libs folder
Navigate to your build.gradle at the app level and include the following:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'org.webrtc:google-webrtc:1.0.30039'
implementation 'com.android.volley:volley:1.1.0'
}
The Stringee Android SDK requires some permissions from your app's AndroidManifest.xml file:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
If your project uses ProGuard, you may have to add the following settings to the ProGuard configuration file to ensure Stringee builds correctly:
-dontwarn org.apache.**
-keep class com.stringee.** { *; }
-keep class org.apache.** { *; }
Chat Profile is an object which will let you know:
In order to get chat profile, do the following steps:
private StringeeClient stringeeClient;
The StringeeClient class is defined in Stringee SDK. It includes methods interacting with Stringee Server.
stringeeClient = new StringeeClient(this);
Call the method:
stringeeClient.getChatProfile("YOUR_WIDGET_KEY", new CallbackListener<ChatProfile>() {
@Override
public void onSuccess(ChatProfile profile) {
}
@Override
public void onError(StringeeError error) {
}
});
In order to chat with your agents, your customers have to connect to Stringee server first. But they are not users in your system, they can be anybody, so you need to generate a token for them. In order to do that, call the following function:
stringeeClient.getLiveChatToken("YOUR_WIDGET_KEY", "YOUR_CUSTOMER_NAME", "YOUR_CUSTOMER_EMAIL", new CallbackListener<String>() {
@Override
public void onSuccess(String token) {
}
@Override
public void onError(StringeeError error) {
}
});
In which:
Next, we will connect to Stringee Server. You must do this before you can start a live chat conversation.
Register a StringeeConnectionListener interface with StringeeClient object before connecting.
client.setConnectionListener(new StringeeConnectionListener() {
@Override
public void onConnectionConnected(StringeeClient stringeeClient, boolean isReconnecting) {
}
@Override
public void onConnectionDisconnected(StringeeClient stringeeClient, boolean isReconnecting) {
}
@Override
public void onIncomingCall(StringeeCall stringeeCall) {
}
@Override
public void onConnectionError(StringeeClient stringeeClient, StringeeError stringeeError) {
}
@Override
public void onRequestNewToken(StringeeClient stringeeClient) {
}
@Override
public void onCustomMessage(String from, JSONObject msg) {
}
@Override
public void onTopicMessage(String from, JSONObject msg) {
}
});
To listen for object (Conversation, Message) change events, you will need register a ChangeEventListenter interface:
stringeeClient.setChangeEventListenter(new ChangeEventListenter() {
@Override
public void onChangeEvent(StringeeChange change) {
}
});
Connect by calling:
stringeeClient.connect(accessToken);
Before starting a live chat conversation, you can update the customer information to Stringee Server, so your agent can know more about your customer (where is the customer from? what type of cell phone the customer using?...). In order to do that, call the following function:
stringeeClient.updateUser("USER_NAME", "USER_EMAIL", "USER_AVATAR", new StatusListener() {
@Override
public void onSuccess() {
}
@Override
public void onError(StringeeError error) {
}
});
Then start a live chat conversation by calling:
stringeeClient.startLiveChat(queueId, new CallbackListener<Conversation>() {
@Override
public void onSuccess(Conversation conversation) {
}
@Override
public void onError(StringeeError error) {
}
});
In which:
Follow this instruction Messages
In order to end the live chat conversation, you call the following method:
stringeeClient.endChat(convId, new StatusListener() {
@Override
public void onSuccess() {
}
@Override
public void onError(StringeeError error) {
}
});
In which:
To create a ticket for a missed live chat conversation, you call:
stringeeClient.createLiveChatTicket("YOUR_WIDGET_KEY", "CUSTOMER_NAME", "CUSTOMER_EMAIL", "TICKET_DESCRIPTION", new StatusListener() {
@Override
public void onSuccess() {
}
@Override
public void onError(StringeeError error) {
}
});