Skip to content

Send first chat message

The ConnectyCube Chat API is a set of tools that enables developers to integrate real-time messaging into their web and mobile applications. With this API, users can build powerful chat functionalities that support one-on-one messaging, group chats, typing indicators, message history, delivery receipts, and push notifications.

If you’re planning to build a new app, we recommend starting with one of our code samples apps as a foundation for your client app.
If you already have an app and you are looking to add chat to it, proceed with this guide. This guide walks you through installing the ConnectyCube SDK in your app, configure it and then sending your first message to the opponent in 1-1 chat.

Before you start

Before you start, make sure:

  1. You have access to your ConnectyCube account. If you don’t have an account, sign up here.
  2. An app created in ConnectyCube dashboard. Once logged into your ConnectyCube account, create a new application and make a note of the app credentials (app ID, auth key, and auth secret) that you’ll need for authentication.

Step 1: Configure SDK

To use chat in a client app, you should install, import and configure ConnectyCube SDK.

Note: If the app is already created during the onboarding process and you followed all the instructions, you can skip the ‘Configure SDK’ step and start with Create and Authorise User.

Install SDK

To get the ConnectyCube SDK project running you will need Android Studio and Maven installed.

The repository https://github.com/ConnectyCube/connectycube-android-sdk-releases contains binary distributions of ConnectyCube Android SDK and an instruction how to connect SDK to your project. Check it out.

Include reference to sdk repository in your build.gradle file at the app level (top level):

repositories {
maven {
url "https://github.com/ConnectyCube/connectycube-android-sdk-releases/raw/master/"
}
}

Then include dependencies to particular sdk-modules in build.gradle project file:

dependencies {
implementation "com.connectycube.sdk:connectycube-android:2.0.0-beta05"
}

Import SDK

Add the following import statement to start using all classes and methods.

import com.connectycube.ConnectyCubeAndroid;

Initialize SDK

Initialize the SDK with your ConnectyCube application credentials. You can access your application credentials in ConnectyCube Dashboard:

ConnectyCubeAndroid.init(APP_ID, AUTH_KEY, AUTH_SECRET, context = applicationContext)

Step 2: Create and Authorise User

To make API requests, firstly you need to create and authenticate a user who will send/receive messages in chat later.

Create an application session

ConnectyCube.createSession({ session -> }, { error -> })

Register a user

val userTags = listOf("iphone", "apple")
val userToSignUp = ConnectycubeUser(login = "marvin18", password = "supersecurepwd").apply {
email = "awesomeman@gmail.com"
fullName = "Marvin Simon"
phone = "47802323143"
website = "https://dozensofdreams.com"
tags = userTags.joinToString(",")
}
ConnectyCube.signUp(userToSignUp, { user -> }, { error -> })

Create a user’s session

To allow users to proceed with any actions within the application, you need to create a session for them. Having created an application session, you need to upgrade it to a user session by calling signIn method:

val userToLogin = ConnectycubeUser(login = "marvin18", password = "supersecurepwd")
ConnectyCube.signIn(userToLogin, { user -> }, { error -> })

Now that the user is authorized in the application, they can proceed with chat creation and messaging with opponent(s).

Step 3: Connect User to chat

Connecting to the chat is an essential step in enabling real-time communication. By establishing a connection, the user is authenticated on the chat server, allowing them to send and receive messages instantly. Without this connection, the app won’t be able to interact with other users in the chat.

val user = ConnectycubeUser().apply {
id = 21
password = "supersecurepwd"
}
// or just
// val user = user {
// id = 21
// password = "supersecurepwd"
//}
ConnectyCube.chat.login(user, {}, { ex -> Log.d(tag, "login ex= $ex") })

Step 4: Create 1-1 chat

Creating a 1-1 chat is essential because it gives a unique conversation ID to correctly route and organize your message to the intended user.

You need to pass ConnectycubeDialogType.PRIVATE as a type and an id of an opponent you want to create a chat with:

val dialog = ConnectycubeDialog(type = ConnectycubeDialogType.PRIVATE, occupantsIds = occupantIds)
ConnectyCube.createDialog(cubeDialog, { dialog ->
}, { error ->
})

Step 5: Send / Receive messages

Receive messages

In order to send and receive messages, first it is required to add listener. There is IncomingMessagesManager to listen for all incoming messages from all dialogs.

ConnectyCube.chat.addMessageListener(object: ConnectycubeMessageListener {
override fun onError(message: ConnectycubeMessage, ex: Throwable) {
}
override fun onMessage(message: ConnectycubeMessage) {
}
})

Send messages in 1-1 chat

Creating a 1-1 chat is essential because it gives a unique conversation ID to correctly route and organize your message to the intended user.

ConnectyCube.chat.sendMessage(message {
recipientId = dialog.getRecipientId()
body = "How are you today?"
})

That’s it! You’ve mastered the basics of sending a chat message in 1-1 chat in ConnectyCube.

What’s next?

To take your chat experience to the next level, explore ConnectyCube advanced functionalities, like adding typing indicators, using emojis, sending attachments, and more.

Follow the Chat API documentation to enrich your app and engage your users even further!