This API is used by the app backend to monitor users' one-to-one messages in real time, including:
SDKAppID
contained in the request URL is the SDKAppID
of the app.sendmsg
RESTful API.The IM backend has received a one-to-one message sent by a user but has not delivered the message to the target user.
In the following sample, the callback URL configured in the app is https://www.example.com
.
Example:
https://www.example.com?SdkAppid=$SDKAppID&CallbackCommand=$CallbackCommand&contenttype=json&ClientIP=$ClientIP&OptPlatform=$OptPlatform
Parameter | Description |
---|---|
https | The request protocol is HTTPS and the request method is POST. |
www.example.com | Callback URL |
SdkAppid | SDKAppID assigned by the IM console when an app is created |
CallbackCommand | The value is always C2C.CallbackBeforeSendMsg . |
contenttype | The value is always JSON . |
ClientIP | IP address of the client, such as 127.0.0.1 |
OptPlatform | Platform of the client. For more information about valid values, see the description of OptPlatform in the Callback Protocols section of Third-Party Callback Overview. |
{
"CallbackCommand": "C2C.CallbackBeforeSendMsg", // Callback command
"From_Account": "jared", // Sender
"To_Account": "Jonh", // Recipient
"MsgSeq": 48374, // Sequence number of the message
"MsgRandom": 2837546, // Random number of the message
"MsgTime": 1557481126, // Timestamp in seconds indicating when the message is sent
"MsgKey": "48374_2837546_1557481126", // Unique identifier of the message. It can be used to recall the message via a RESTful API call.
"OnlineOnlyFlag":1, // The value is `1` if it is an online message and `0` if it's not
"MsgBody": [ // Message body. For more information, see the `TIMMessage` message object.
{
"MsgType": "TIMTextElem", // Text
"MsgContent": {
"Text": "red packet"
}
}
],
"CloudCustomData": "your cloud custom data"
}
Field | Type | Description |
---|---|---|
CallbackCommand | String | Callback command |
From_Account | String | UserID of the message sender |
To_Account | String | UserID of the message recipient |
MsgSeq | Integer | Sequence number of the message. It is used to identify the message and the value is a random 32-bit unsigned integer. |
MsgRandom | Integer | Random number of the message. It is used to identify the message and the value is a random 32-bit unsigned integer. |
MsgTime | Integer | Timestamp in seconds indicating when the message is sent. One-to-one messages are preferentially sorted by MsgTime . Messages sent in the same second are sorted by MsgSeq . Messages with larger values of MsgSeq are after those with smaller values. |
MsgKey | String | Unique identifier of the message. It can be used to recall the message via a RESTful API call. |
OnlineOnlyFlag | Integer | The value is 1 if it is an online message and 0 if it's not. |
MsgBody | Array | Message body. For more information, see Message Formats. |
CloudCustomData | String | Custom message data. It is saved in the cloud and will be sent to the peer end. Such data can be pulled after the app is uninstalled and reinstalled. |
The user is allowed to send messages, and the message content is not modified.
{
"ActionStatus":"OK",
"ErrorInfo": "",
"ErrorCode": 0 // `0` indicates the user is allowed to send messages.
}
The user is not allowed to send group messages. In this case, the message is not sent, and the error code 20006
is returned to the user (message sender).
{
"ActionStatus":"OK",
"ErrorInfo": "",
"ErrorCode": 1 // `1` indicates that the user is not allowed to send messages.
}
In the following sample, the message sent by the user is modified (a custom message or custom message data is added), and the IM backend will send the modified message. With this feature, the app backend can add special content, such as the user level and title, to the message sent by the user.
Example:
{
"ActionStatus":"OK",
"ErrorInfo": "",
"ErrorCode": 0, // This field must be set to `0` so that the modified message can be sent normally.
"MsgBody": [ // Message modified by the app backend. If the app backend does not modify the message, the message sent by the user is delivered.
{
"MsgType": "TIMTextElem", // Text
"MsgContent": {
"Text": "red packet"
}
},
{
"MsgType": "TIMCustomElem", // Custom message
"MsgContent": {
"Desc": " CustomElement.MemberLevel ", // Description
"Data": " LV1" // Data
}
}
],
"CloudCustomData": "your new cloud custom data" // Custom message data
}
Field | Type | Required | Description |
---|---|---|---|
ActionStatus | String | Yes | Request result. OK : successful; FAIL : failed |
ErrorCode | Integer | Yes | Error code. 0 : allows sending messages. 1 : forbids sending messages. If the business side wants to forbid a user to send messages and send ErrorCode and ErrorInfo to the client, ensure that the value of ErrorCode is set within [120001, 130000]. |
ErrorInfo | String | Yes | Error information |
MsgBody | Array | No | Message body modified by the app backend. The IM backend sends the modified message to the recipient. For more information on the format, see Message Formats. |
CloudCustomData | String | No | Custom message data modified by the app backend. It is saved in the cloud and will be sent to the peer end. Such data can be pulled after the app is uninstalled and reinstalled. The IM backend sends the modified message to the recipient. |
References
Was this page helpful?