Sending Messages in a Official Account

Feature Overview

App Administrators can use this api to send ordinary messages to all subscribers following the official account.
The maximum sending frequency for a single official account is 1 message/sec, with up to 2 broadcast messages per hour.
If the content of two messages is identical within 5 minutes, the latter will be discarded as a duplicate message.

API Calling Description

Sample request URL

https://xxxxxx/v4/official_account_open_http_svc/send_official_account_msg?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json

Request parameters

The table below only lists the parameters modified when calling this API and their descriptions. For more details on the parameters, please refer to RESTful API Overview.
Parameter
Description
xxxxxx
The dedicated domain for the country/region where your SDKAppID is located:
China: console.tim.qq.com
Singapore :adminapisgp.im.qcloud.com
Seoul : adminapikr.im.qcloud.com
Frankfurt :adminapiger.im.qcloud.com
Silicon Valley :adminapiusa.im.qcloud.com
Jakarta :adminapiidn.im.qcloud.com
v4/official_account_open_http_svc/send_official_account_msg
Request API
sdkappid
SDKAppID assigned by the Chat console when an app is created
identifier
You must be an App admin account. For more details, see App Admins
usersig
The Signature generated by the App admin account. For details, see Generating UserSig
random
A random 32-bit unsigned integer ranging from 0 to 4294967295
contenttype
Request format fixed value: json

Maximum calling frequency

200 queries/sec.

Sample request packets

Basic Form Sending Regular Official Account Messages.
{
"Official_Account": "@TOA#_2C5SZEAEF",
"Random": 9875,
"MsgBody": [ // Message body, consists of an element array, see field description for details, messages with the same content within five minutes are considered duplicates
{
"MsgType": "TIMTextElem", // Text
"MsgContent": {
"Text": "red packet"
}
},
{
"MsgType": "TIMFaceElem", // Expression
"MsgContent": {
"Index": 6,
"Data": "abc\u0000\u0001"
}
}
],
"CloudCustomData": "your cloud custom data",
"OfflinePushInfo": {
"PushFlag": 0, // Normal push,
"Desc": "Offline Push Content",
"Ext": "This is the transmitted content",
"AndroidInfo": {
"Sound": "android.mp3"
},
"ApnsInfo": {
"Sound": "apns.mp3",
"BadgeMode": 1, // This field is omitted or 0 means counting is required, 1 means this message does not require counting, i.e., the number on the upper right corner icon does not increase
"Title":"apns title", // apns title
"SubTitle":"apns subtitle", // apns subtitle
"Image":"www.image.com" // image url
}
}
}
Specifies that the message does not update the recent contact session If SendMsgControl is specified in the message, setting NoLastMsg means it does not update the recent contact session.
{
"Official_Account": "@TOA#_2C5SZEAEF",
"Random": 9875,
"SendMsgControl":["NoLastMsg"],// Specifies that the message does not trigger an update to the recent contact session.
"MsgBody": [ // Message body, consists of an element array, see field description for details, messages with the same content within five minutes are considered duplicates
{
"MsgType": "TIMTextElem", // Text
"MsgContent": {
"Text": "red packet"
}
},
{
"MsgType": "TIMFaceElem", // Expression
"MsgContent": {
"Index": 6,
"Data": "abc\u0000\u0001"
}
}
]
}
Specifies that the message does not trigger a callback With callback function enabled, users can control whether a single message triggers a callback through ForbidCallbackControl, by default, a callback is initiated.
{
"Official_Account": "@TOA#_2C5SZEAEF",
"Random": 9875,
"ForbidCallbackControl":[
"ForbidBeforeSendMsgCallback",
"ForbidAfterSendMsgCallback"], // Prohibit callback control option
"MsgBody": [ // Message body, consists of an element array, see field description for details, messages with the same content within five minutes are considered duplicates
{
"MsgType": "TIMTextElem", // Text
"MsgContent": {
"Text": "red packet"
}
},
{
"MsgType": "TIMFaceElem", // Expression
"MsgContent": {
"Index": 6,
"Data": "abc\u0000\u0001"
}
}
]
}
Specifies that the message will not be stored offline or for roaming If OnlineOnlyFlag is specified in the message body, as long as its value is greater than 0, it indicates that the message will only be sent online and will not be stored for offline or roaming.
{
"Official_Account": "@TOA#_2C5SZEAEF",
"Random": 9875,
"OnlineOnlyFlag": 1, // Indicates that the message is only sent online (only online subscribers can receive it), and is not stored for offline or roaming
"MsgBody": [ // Message body, consists of an element array, see field description for details, messages with the same content within five minutes are considered duplicates
{
"MsgType": "TIMTextElem", // Text
"MsgContent": {
"Text": "red packet"
}
},
{
"MsgType": "TIMFaceElem", // Expression
"MsgContent": {
"Index": 6,
"Data": "abc\u0000\u0001"
}
}
]
}

Request packet fields

Field
Type
Attribute
Description
Official_Account
String
Mandatory
Official Account Users sending messages.
Random
Integer
Mandatory
Unsigned 32-bit integer (range: 0 to 4294967295). If the content and Random value of two messages are the same within 5 minutes, the latter message will be considered a duplicate and discarded.
MsgBody
Array
Mandatory
Message body, for details refer to Message Format.
OfflinePushInfo
Object
Optional
Offline push notification configuration, for details see Message Format.
ForbidCallbackControl
Array
Optional
Message callback prohibition switch, applies only to individual messages, ForbidBeforeSendMsgCallback indicates prohibiting callback before sending a message, ForbidAfterSendMsgCallback indicates prohibiting callback after sending a message
OnlineOnlyFlag
Integer
Optional
1 indicates the message is sent only to online subscribers, default 0 indicates sending to all subscribers
SendMsgControl
Array
Optional
Message sending permissions, NoLastMsg applies only to individual messages, indicates not updating the latest conversation (If the message's OnlineOnlyFlag is set to 1, then this field should not be used.)
CloudCustomData
String
Optional
Custom message data (stored in the cloud, will be sent to the peer, and can be retrieved even after the app is uninstalled and reinstalled).

Sample response packets

{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 0,
"MsgTime": 1497249503,
"MsgKey": "89541_1_1572870301"
}

Response packet field description

Field
Type
Description
ActionStatus
String
Processed Request Result:
OK: Indicates successful processing
FAIL: Indicates failure
ErrorCode
Integer
Error Identifier:
0: Indicates success
Non-zero: Indicates failure
ErrorInfo
String
Error message
MsgTime
Integer
Timestamp of when the message is sent, corresponding to the server time
MsgKey
String
Unique Message Identifier, used for recall. Length must not exceed 50 characters

Error codes

Unless a network error occurs (such as a 502 error), the HTTP return code for this interface is always 200. The real error code and error message are indicated by ErrorCode, ErrorInfo in the response body. Common error codes (60000 to 79999) can be found in the Error Codes document. The private error codes for this API are as follows:
Error code
Description
10002
Internal server error. Please try again.
10004
Invalid parameters. Please check the request based on the error description.
10007
Insufficient operational permissions.
10010
The official account user does not exist, or it may have existed but has now been disbanded.
10015
Official Account User ID is invalid, please check if the Official Account User ID is correctly filled.
10016
The App backend refuses this operation through Third-party Callback.
10017
Unable to send messages due to being muted, please check if the sender has been set to mute.
10023
The frequency of sending messages exceeds the limit, please extend the interval between two message sending times.
80002
The message content is too long, currently supporting up to 12K Bytes of messages, please adjust the length of the message.

API Debugging Tool

Use the RESTful API Online Debugging Tool to debug this API.

Reference

Possible Trigger Callbacks