Working with Chats

TrueConfAbout 29 min

Working with Chats

Client requests

Create personal chat

Creating a personal chat (peer-to-peer) with a server user. If the bot has never messaged this user before, a new chat will be created. If the bot has previously sent messages to this user, the existing chat will be returned.

Request:

{
    "type": 1,
    "id": 1,
    "method": "createP2PChat",
    "payload": {
        "userId": "user@video.example.com"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesThe createP2PChat command
userIdstringYesTrueConf ID of the user with whom we want to start a chat

Response:

{
    "type": 2,
    "id": 1,
    "payload": {
        "chatId": "4a1f88f1070d2f43d385cde9ff61964bc6b74477"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
chatIdstringYesID of the created chat

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Create a group chat

Request:

{
    "type": 1,
    "id": 1,
    "method": "createGroupChat",
    "payload": {
        "name": "TrueConf Server Administrators’ Chat"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand createGroupChat
titlestringYesGroup Chat Name

Response:

{
    "type": 2,
    "id": 1,
    "payload": {
        "chatId": "2b896a6ef210d6b2dcaebc2186c9a7974d616054"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
chatIdstringYesIdentifier of the created group chat

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Create channel

Request:

{
    "type": 1,
    "id": 1,
    "method": "createChannel",
    "payload": {
        "title": "Company news"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand createChannel
titlestringYesChannel Name

Response:

{
    "type": 2,
    "id": 1,
    "payload": {
        "chatId": "2b896a6ef210d6b2dcaebc2186c9a7974d616054"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
chatIdstringYesIdentifier of the created channel

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Create "Favorites" chat 5.5.2+

Request:

{
    "type": 1,
    "id": 1,
    "method": "createFavoritesChat",
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesThe createFavoritesChat command

Response:

{
    "type": 2,
    "id": 1,
    "payload": {
        "chatId": "2b896a6ef210d6b2dcaebc2186c9a7974d616054"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
chatIdstringYesIdentifier of the created "Favorites" chat

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Delete chat

Deletes the specified chat (personal, group, or channel). After deletion, the chat will be unavailable to all participants.

Request:

{
  "type": 1,
  "id": 1,
  "method": "removeChat",
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256"
  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand removeChat
chatIdstringYesIdentifier of the chat to be deleted

Response:

{
  "type": 2,
  "id": 1,
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256"
  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
chatIdstringYesRemote chat ID

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Edit chat name 5.5.3+

Request:

{
    "type": 1,
    "id": 1,
    "method": "editChatTitle",
    "payload": {
      "chatId": "29bc6e4d0f99105b50f419eff03a1ed58da9db6c",
      "title": "New title"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand editChatTitle
chatIdstringYesIdentifier of the chat being renamed
titlestringYesNew chat name

Response:

{
    "type": 2,
    "id": 2,
    "payload": {
        "chatId": "29bc6e4d0f99105b50f419eff03a1ed58da9db6c",
        "timestamp": 1765115572804
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
chatIdstringYesChat ID with the changed name
timestampuint64YesTimestamp for the chat name change in UNIX timestamp format with millisecond precision

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Change chat image 5.5.3+

Request:

{
    "type": 1,
    "id": 1,
    "method": "editChatAvatar",
    "payload": {
      "chatId": "29bc6e4d0f99105b50f419eff03a1ed58da9db6c",
      "temporalFileId": "8157ea50-fd9e-4b27-bb93-d9045bc65c48"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand editChatAvatar
chatIdstringYesIdentifier of the chat being renamed
temporalFileIdstringYesThe identifier of the file uploaded to the server. To delete the image, set to null.

Retrieve chat history

Messages are returned in order from the newest message (or from fromMessageId) to the oldest based on the date they were added to the chat.

Request:

{
    "type": 1,
    "id": 1,
    "method": "getChatHistory",
    "payload": {
        "chatId": "4a1f88f1070d2f43d385cde9ff61964bc6b74477",
        "count": 9999,
        "fromMessageId": "e37cfc52-592f-453f-a3dd-275170b2018d"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand getChatHistory
chatIdstringYesThe chat ID for which the message history is requested.
countuint32YesNumber of messages returned in the response
fromMessageIdstringNoChat message identifier from which the history will be returned.

Response:

ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
chatIdstringYesChat ID for which the message history was requested
countuint32YesNumber of received messages
messagesArray<Envelope>NoAn array of Envelope objects, each representing a single message. Field descriptions and examples can be found in the API Reference.

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Clear chat history 5.5.3+

Deleting all messages from the specified chat (private, group, or channel).

Request:

{
  "type": 1,
  "id": 1,
  "method": "clearHistory",
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
    "forAll": false
  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand clearHistory
chatIdstringYesChat ID whose history will be cleared
forAllboolNoBy default — false. If true, the chat will be cleared for everyone. In group chats and channels, permissions must be granted to perform this action.

Response:

{
  "type": 2,
  "id": 1,
  "payload": {}
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Get chat information

Returns detailed data about the chat by its ID.

Request:

{
    "type": 1,
    "id": 1,
    "method": "getChatByID",
    "payload": {
        "chatId": "2b896a6ef210d6b2dcaebc2186c9a7974d616054"
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand getChatByID
chatIdstringYesChat ID

Response:

ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
chatIdstringYesChat ID
titlestringYesChat name
chatTypeChatTypeEnumYesChat type
unreadMessagesuint32YesNumber of unread messages in the chat
lastMessageEnvelopeYesLast message in chat

The lastMessage field corresponds to the Envelope format, except that it lacks the chatId, isEdited, and box fields.

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Retrieve the list of chats

Returns a list of all chats that the current user is a member of.

Request:

{
    "type": 1,
    "id": 1,
    "method": "getChats",
    "payload": {
        "count": 10,
        "page": 1
    }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand getChats
countuint32YesMaximum number of chat objects in response
Pageuint32YesPage number of the request (paging). Starts from 1

Response:

ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesAn identifier matching the number sent in the original request, used to link the request and response.
payloadArrayYesUser chat array

In the event of an error, a message containing the errorCode parameter is returned. A list of possible values is available in the corresponding section of the documentation.

Server notifications

For each server notification (request), the client should respond as follows:

{
    "type": 2,
    "id": 123456
}

Once the response is sent, the user’s message is marked as read by the bot and a check mark appears in the TrueConf client application.

Personal chat created

The server notifies about the creation of a personal (peer-to-peer) chat involving only two users. The notification is sent when another user initiates the creation of such a chat with the current user.

Notification from the server:

ParameterTypeMandatoryDescription
methodstringYesThe createP2PChat command
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incrementable value assigned by the sender. Read more here.
chatIdstringYesID of the created chat
titlestringYesthe user who created the chat
chatTypeuint32YesType of the created chat. Corresponds to ChatTypeEnum
lastMessage.chatIdstringYesChat ID where the message is located
messageIdstringYesMessage ID. It can be used later for modifying, forwarding, or deleting the message.
timestampuint64YesTimestamp of message sent in UNIX timestamp format with millisecond precision
author.idstringYesUnique identifier of the message author (TrueConf ID or server name)
author.typeuint32YesMessage author type. See EnvelopeAuthorTypeEnum
lastMessage.typeuint32YesMessage type corresponds to EnvelopeContentType
textstringNoMessage text
parseModestringNoFormatting mode (more details)
unreadMessagesuint32YesNumber of unread messages in personal chat

The payload.lastMessage.content field varies depending on the payload.lastMessage.type of the message.

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)

Group chat created

The server notifies about the creation of a group chat in which the current user has been added. You can find a description of the group chat participants' rights here.

Notification from the server:

ParameterTypeMandatoryDescription
methodstringYesCommand createGroupChat
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
chatIdstringYesID of the created chat
titlestringYesName of the created chat
chatTypeuint32YesType of the created chat. Corresponds to ChatTypeEnum
lastMessage.chatIdstringYesChat ID where the message is located
messageIdstringYesMessage ID. Can be used for modification, forwarding, or deletion.
timestampuint64YesA timestamp in the UNIX timestamp format, accurate to milliseconds
author.idstringYesTrueConf ID of the message author or the server name
author.typeuint32YesAuthor type. See EnvelopeAuthorTypeEnum
lastMessage.typeuint32YesMessage type. See EnvelopeContentType
userIdstringNoTrueConf ID of the user who sent the message
rolestringNoUser role in chat (see more)
unreadMessagesuint32YesNumber of unread messages in the group chat

The payload.lastMessage.content field varies depending on the payload.lastMessage.type of the message.

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)

Channel created

The server notifies about the creation of a channel to which the current user has been added. You can find a description of the channel participants' permissions here.

Notification from the server:

ParameterTypeMandatoryDescription
methodstringYesCommand createChannel
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
chatIdstringYesIdentifier of the created channel
titlestringYesName of the created channel
chatTypeuint32YesType of the created channel. Corresponds to ChatTypeEnum = 6
lastMessage.chatIdstringYesChannel ID where the message is located
messageIdstringYesMessage ID. This identifier can be used later to modify, forward, or delete the message.
timestampuint64YesTimestamp of message sent in UNIX timestamp format with millisecond precision
author.idstringYesUnique identifier of the message author. This can either be the TrueConf ID of the user or the name of the server from which the message was sent. The type of identifier depends on the type field.
author.typeuint32YesMessage author type. For more details, see EnvelopeAuthorTypeEnum.
lastMessage.typeuint32YesMessage type. Allows you to determine the type of content in the message. Corresponds to EnvelopeContentType
userIdstringNoTrueConf ID of the user who sent the message
rolestringNoUser role in group chat (see details)
unreadMessagesuint32YesNumber of unread messages in the channel

The payload.lastMessage.content field varies depending on the payload.lastMessage.type of the message.

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)

Chat "Favorites" created 5.5.2+

The server notifies about the creation of the "Favorites" chat.

Notification from the server:

{
    "method": "createFavoritesChat",
    "type": 1,
    "id": 1,
    "payload": {
        "chatId": "b7d0e9b76dd414cce07d6895682455814fa4bfd1",
        "title": null,
        "chatType": 5,
        "lastMessage": null,
        "unreadMessages": 0
    }
}
ParameterTypeMandatoryDescription
methodstringYesThe createFavoritesChat command
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
chatIdstringYesIdentifier of the created "Favorites" chat
title—YesBy default null
chatTypeuint32YesType of the created chat. Corresponds to ChatTypeEnum = 5
lastMessage—YesBy default null
unreadMessagesuint32YesBy default, 0

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)

Chat name changed 5.5.3+

Notification from the server:

{   
    "method": "editChatTitle",
    "type": 1,
    "id": 1,
    "payload": {
      "chatId": "29bc6e4d0f99105b50f419eff03a1ed58da9db6c",
      "title": "New title"
    }
}
ParameterTypeMandatoryDescription
methodstringYesCommand editChatTitle
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
chatIdstringYesRenamed chat ID
titlestringYesNew chat name

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)

Chat image changed 5.5.3+

Notification from the server:

{
    "method": "editChatAvatar",
    "type": 1,
    "id": 12,
    "payload": {
        "chatId": "af9d5017f77a5bb81628e123e1061e49dfa29f80",
        "avatarUrl": "http://10.110.2.241/bridge/api/client/v1/message/123657c5-1b4f-4416-ae97-fbbc5b5b522d/preview"
    }
}
ParameterTypeMandatoryDescription
methodstringYesCommand editChatAvatar
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
chatIdstringYesChat ID for which the image has been changed.
avatarUrlstringYesNew chat image. If null, it means the image is missing (deleted).

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)

Chat history cleared. 5.5.3+

Notification from the server:

{
  "type": 1,
  "id": 1,
  "method": "clearHistory",
  "payload": {
    "chatId": "c8c3eee8-9ad0-4638-9692-ad16391a4256",
    "forAll": false
  }
}
ParameterTypeMandatoryDescription
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incremental value assigned by the sender, required in each request for subsequent association with the response. Read more here.
methodstringYesCommand clearHistory
chatIdstringYesChat ID whose history was cleared
forAllboolNoIf true, the chat has been cleared for everyone.

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)

Chat deleted

The server notifies about the deletion of a chat in which the current user was previously a participant. This can be a personal (peer-to-peer) chat, group chat, or channel.

Notification from the server:

{
    "method": "removeChat",
    "type": 1,
    "id": 1,
    "payload": {
        "chatId": "84960c6d80afa729b0fd42d35331de5814cc3e9a"
    }
}
ParameterTypeMandatoryDescription
methodstringYesCommand removeChat
typeuint32YesMessage type (default is 1). Corresponds to MESSAGE_TYPE.REQUEST
iduint32YesUnique request identifier. An incrementing value assigned by the sender. Read more here
chatIdstringYesRemote chat ID

Response from client:

{
    "type": 2,
    "id": 123456
}
FieldTypeMandatoryDescription
typeuint32YesMessage type (default is 2). Corresponds to MESSAGE_TYPE.RESPONSE
iduint32YesMessage ID being replied to (see more)