5 Message processing#
5.1 Send read receipt#
GET /message/ack
Request Header#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| access-token | string | false | Token |
| app_id | string | true | App ID |
| group_id | int64 | false | This field can be set only if access-token is an Admin token, means call this interface as an Admin for this group ID |
| user_id | int64 | false | This field can be set only if access-token is a user token, means call this interface as a group member for this user ID |
Query Param#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| conversation_id | int64 | false | SessionID |
| device_sn | int32 | false | Device serial number |
| msg_id | int64 | false | MessageID |
Response Body#
● 200 Response data format:JSON
| Parameter | Type | Description |
|---|---|---|
| code | int32 | Response code; 200 indicates success |
| data | boolean | Result data |
| message | string | Error information, null means success |
Interface Description#
5.2 Broadcast a message#
POST /message/broadcast
Request Header#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| access-token | string | false | Token |
| app_id | string | true | App ID |
| group_id | int64 | false | This field can be set only if access-token is an Admin token, means call this interface as an Admin for this group ID |
| user_id | int64 | false | This field can be set only if access-token is a user token, means call this interface as a group member for this user ID |
Request Body#
| Parameter | Data Type | Required | Default | Description |
|---|---|---|---|---|
| attachment | string | false | ||
| config | string | false | ||
| content | string | false | ||
| content_type | int32 | true | Message types: TEXT = 0; IMAGE = 1; AUDIO = 2; VIDEO = 3; FILE = 4; LOCATION = 5; COMMAND = 6; | |
| ext | string | false | ||
| type | int32 | true | Target type; 1 indicates a regular user |
Response Body#
● 200 Response data format:JSON
| Parameter | Type | Description |
|---|---|---|
| code | int32 | Response code; 200 indicates success |
| data | object | Result data |
| ⇥ send_num | int64 | Number sent |
| ⇥ success | boolean | Success or not |
| message | string | Error information, null means success |
Interface Description#
5.2 Get the message for the specified session#
GET /message/conversation
Request Header#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| access-token | string | false | Token |
| app_id | string | true | App ID |
| group_id | int64 | false | This field can be set only if access-token is an Admin token, means call this interface as an Admin for this group ID |
| user_id | int64 | false | This field can be set only if access-token is a user token, means call this interface as a group member for this user ID |
Query Param#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| limit | int32 | true | How many to fetch |
| msg_id_start | int64 | true | From which message to start pulling forward: use 0 for the latest message |
| opposite_id | int64 | true | SessionID |
Response Body#
● 200 Response data format:JSON
| Parameter | Type | Description |
|---|---|---|
| code | int32 | Response code; 200 indicates success |
| data | object | Result data |
| ⇥ is_last | boolean | Whether it is the last message: true - there are no more messages to follow, false - there are more messages to follow |
| ⇥ messages | array[object] | Message list |
| ⇥⇥ attachment | string | Message attachment: When the message type is image/voice/video/file, this field will include the file url |
| ⇥⇥ config | string | Extension fields used by the SDK layer |
| ⇥⇥ content | string | Message content |
| ⇥⇥ ctype | string | Message Content Type: TEXT - Text, IMAGE - Image, AUDIO - Voice, VIDEO - Video, FILE - File, LOCATION - Location, COMMAND - Custom, FORWARD - Forward Message |
| ⇥⇥ ext | string | Extension data |
| ⇥⇥ from_xid | object | Message sender |
| ⇥⇥⇥ device_sn | int32 | Device serial number |
| ⇥⇥⇥ uid | int64 | User ID |
| ⇥⇥ msg_id | int64 | MessageID |
| ⇥⇥ status | string | Message status: UNREAD - unread, DELIVERED - delivered, READ - read |
| ⇥⇥ timestamp | int64 | Message delivery timestamp (milliseconds) |
| ⇥⇥ to_xid | object | Message receiver |
| ⇥⇥⇥ device_sn | int32 | Device serial number |
| ⇥⇥⇥ uid | int64 | User ID |
| ⇥ next_msg_id | int64 | the message ID that needs to be set to pull the messages: Set this message ID to msg_id_start of the request parameter to continue to pull the message |
| message | string | Error information, null means success |
Interface Description#
5.3 Delete the specified session for the user#
DELETE /message/conversation
Request Header#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| access-token | string | false | Token |
| app_id | string | true | App ID |
| group_id | int64 | false | This field can be set only if access-token is an Admin token, means call this interface as an Admin for this group ID |
| user_id | int64 | false | This field can be set only if access-token is a user token, means call this interface as a group member for this user ID |
Query Param#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| conversation_id | int64 | true | SessionID |
Response Body#
● 200 Response data format:JSON
| Parameter | Type | Description |
|---|---|---|
| code | int32 | Response code; 200 indicates success |
| data | boolean | Result data |
| message | string | Error information, null means success |
Interface Description#
5.5 Get all conversations for a user#
GET /message/conversation_list
Request Header#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| access-token | string | false | Token |
| app_id | string | true | App ID |
| group_id | int64 | false | This field can be set only if access-token is an Admin token, means call this interface as an Admin for this group ID |
| user_id | int64 | false | This field can be set only if access-token is a user token, means call this interface as a group member for this user ID |
Query Param#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| cursor | string | false | Cursor used to fetch the next page |
| limit | int32 | false | Items per page; the default and maximum are 20 |
Response Body#
● 200 Response data format:JSON
| Parameter | Type | Description |
|---|---|---|
| code | int32 | Response code; 200 indicates success |
| data | object | Result data |
| ⇥ conversations | array[object] | Conversation list |
| ⇥⇥ conversation_id | object | Conversation info |
| ⇥⇥⇥ uid | int64 | SessionID |
| ⇥⇥ create_timestamp | int64 | Creation timestamp |
| ⇥⇥ latest_msg_id | int64 | Latest message ID |
| ⇥⇥ update_timestamp | int64 | Most recent activity timestamp |
| ⇥ has_more | boolean | Whether more conversations are available: true means more remain; false means the end has been reached |
| ⇥ next_cursor | string | Cursor used to fetch the next page |
| message | string | Error information, null means success |
Interface Description#
5.4 Send system notification#
PUT /message/notify
POST /message/notify
Request Header#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| access-token | string | false | Token |
| app_id | string | true | App ID |
| group_id | int64 | false | This field can be set only if access-token is an Admin token, means call this interface as an Admin for this group ID |
| user_id | int64 | false | This field can be set only if access-token is a user token, means call this interface as a group member for this user ID |
Request Body#
| Parameter | Data Type | Required | Default | Description |
|---|---|---|---|---|
| attachment | string | false | Attachment: This field needs to be set if the message type is image/voice/video/file.:{"url":"https://xxx" ,"dName":"1658890327124.amr","fLen":1670,"duration":1}{"url":"https://xxx" ,"dName":"1646751218948","fLen":508728,"width":828.0,"height":828.0} | |
| config | string | false | Extension fields used by the SDK | |
| content | string | true | Message content | |
| content_type | int32 | true | Message type TEXT = 0; IMAGE = 1; AUDIO = 2; VIDEO = 3; FILE = 4; LOCATION = 5; COMMAND = 6; FORWARD = 7; | |
| ext | string | false | Extension data | |
| from_user_id | int64 | false | Sender's user ID | |
| online_only | boolean | false | Whether to deliver only to online users (default: false): true delivers only to online users; false delivers to both online and offline users. | |
| related_mid | int64 | false | ID of the message affected by the operation. Set this field for READ_ACK or RECALL to identify the message being marked as read or recalled. | |
| targets | array[int64] | true | Receive user ID or group ID | |
| transaction_id | int64 | false | Request ID used for deduplication. If two requests with the same transaction_id arrive within a short period, the second request is ignored. Requests are not deduplicated when this field is omitted. | |
| type | int32 | true | Target type: 1 for a user, 2 for a group. |
Response Body#
● 200 Response data format:JSON
| Parameter | Type | Description |
|---|---|---|
| code | int32 | Response code; 200 indicates success |
| data | boolean | Result data |
| message | string | Error information, null means success |
| msg_ids | array[int64] | Message ID list; message IDs are currently returned only when there is one recipient |
Interface Description#
5.5 Revoke message#
PUT /message/recall
POST /message/recall
Request Header#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| access-token | string | false | Token |
| app_id | string | true | App ID |
| group_id | int64 | false | This field can be set only if access-token is an Admin token, means call this interface as an Admin for this group ID |
| user_id | int64 | false | This field can be set only if access-token is a user token, means call this interface as a group member for this user ID |
Request Body#
| Parameter | Data Type | Required | Default | Description |
|---|---|---|---|---|
| conversation_id | int64 | true | SessionID | |
| msg_id | int64 | true | MessageID |
Response Body#
● 200 Response data format:JSON
| Parameter | Type | Description |
|---|---|---|
| code | int32 | Response code; 200 indicates success |
| data | boolean | Result data |
| message | string | Error information, null means success |
Interface Description#
5.6 Send a message#
PUT /message/send
POST /message/send
Request Header#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| access-token | string | false | Token |
| app_id | string | true | App ID |
| group_id | int64 | false | This field can be set only if access-token is an Admin token, means call this interface as an Admin for this group ID |
| user_id | int64 | false | This field can be set only if access-token is a user token, means call this interface as a group member for this user ID |
Request Body#
| Parameter | Data Type | Required | Default | Description |
|---|---|---|---|---|
| attachment | string | false | Attachment: This field needs to be set if the message type is image/voice/video/file.:{"url":"https://xxx" ,"dName":"1658890327124.amr","fLen":1670,"duration":1}{"url":"https://xxx" ,"dName":"1646751218948","fLen":508728,"width":828.0,"height":828.0} | |
| config | string | false | Extension fields used by the SDK | |
| content | string | true | Message content | |
| content_type | int32 | true | Message type TEXT = 0; IMAGE = 1; AUDIO = 2; VIDEO = 3; FILE = 4; LOCATION = 5; COMMAND = 6; FORWARD = 7; | |
| ext | string | false | Extension data | |
| from_user_id | int64 | false | Sender's user ID | |
| online_only | boolean | false | Whether to deliver only to online users (default: false): true delivers only to online users; false delivers to both online and offline users. | |
| related_mid | int64 | false | ID of the message affected by the operation. Set this field for READ_ACK or RECALL to identify the message being marked as read or recalled. | |
| targets | array[int64] | true | Receive user ID or group ID | |
| transaction_id | int64 | false | Request ID used for deduplication. If two requests with the same transaction_id arrive within a short period, the second request is ignored. Requests are not deduplicated when this field is omitted. | |
| type | int32 | true | Target type: 1 for a user, 2 for a group. |
Response Body#
● 200 Response data format:JSON
| Parameter | Type | Description |
|---|---|---|
| code | int32 | Response code; 200 indicates success |
| data | boolean | Result data |
| message | string | Error information, null means success |
| msg_ids | array[int64] | Message ID list; message IDs are currently returned only when there is one recipient |
Interface Description#
5.7 Get the list of recent sessions for the specified user#
GET /message/unread
Request Header#
| Parameter | Data Type | Required | Description |
|---|---|---|---|
| access-token | string | false | Token |
| app_id | string | true | App ID |
| group_id | int64 | false | This field can be set only if access-token is an Admin token, means call this interface as an Admin for this group ID |
| user_id | int64 | false | This field can be set only if access-token is a user token, means call this interface as a group member for this user ID |
Response Body#
● 200 Response data format:JSON
| Parameter | Type | Description |
|---|---|---|
| code | int32 | Response code; 200 indicates success |
| data | array[object] | Result data |
| ⇥ conversation_id | object | Conversation info |
| ⇥⇥ uid | int64 | SessionID |
| ⇥ num | int32 | Unread message-number |
| message | string | Error information, null means success |