发送单聊模板消息
应用下的用户可向其他用户发送单聊模板消息。通过您自定义的模板,可实现一次向多个用户发送不同的消息内容。例如,App 可以向应用中不同用户发送消息告知已获得的积分。
- 单次最多向 1000 个用户发送单聊模板消息。
- 支持通过模板字段区分不同用户收到的离线推送通知内容。如有需要,请在
pushContent
中按照toUserId
中的用户 ID 列表逐个定义推送内容。 - 通过该接口发送的消息,默认不会向消息发件人客户端同步,也不会存入发件用户的历史消息记录。如需同步,请参见
isIncludeSender
参数用法。
如何配置与使用消息模板
消息模板通过字段内容模板(带标识位),和按接收者提供的标识位定义,实现单次向多个接收者发送不同内容的效果。
定义内容模板
发送消息时,可在 content
、pushContent
、pushData
字段中传入带标识位的字段内容,例如:
"toUserId":["21","22","23"],
"content":"{\"content\":\"{c}{d}\",\"extra\":\"bb\"}",
"pushContent":["hello {c}","hello {c}","hello {c}"],
上例中的 {c}
、{d}
为自定义的标识位。
- 当前支持定义模板的字段包括:
content
、pushContent
、pushData
。 - 消息内容(
content
)字段仅支持插入一个模板,所有接收者共用该模板。 - 消息推送通知内容(
pushContent
)、推送附加数据(pushData
)字段类型为数组,必须按照toUserId
中的用户 ID 列表逐个定义模板。即使不在pushContent
、pushData
中使用模板标识位,或 所有接收者接收相同内容,都必须按照toUserId
中的用户 ID 列表逐个定义各自的pushContent
、pushData
。
指定模板内容标识位的值
按照收件人列表(toUserId
)在 values
字段提供标识位的定义,即为各个收件人指定需要接收的个性化内容。
"values":[
{
"{c}":"Tom",
"{d}":":2"
},
{
"{c}":"Jerry",
"{d}":":5"},
{
"{c}":"Rose",
"{d}":":10"}
],
上面示例中,各接收者在线时收到的消息内容如下:
- 用户 ID 为 21 收到:Tom:2
- 用户 ID 为 22 收到:Jerry:5
- 用户 ID 为 23 收到:Rose:10
如果接收者离线,各自收到的推送通知的内容(pushContent
)也不同,分别为 Hello Tom
,Hello Jerry
,Hello Rose
。
如 content
中定义了标识 {d}
,则在 values
中必须设置 {d}
的值,否则 {d}
会以文本方式随消息发送给用户。
请求方法
POST: https://数据中心域名/message/private/publish_template.json
频率限制: 每分钟限发送 6000 条信息。请注意,如果一次发送给 1000 人,视为 1000 条消息。
签名规则: 所有服务端 API 请求均需要进行规则校验,详见 API 请求签名。
正文参数
HTTP 请求正文数据格式为 application/json
,包含具有以下结构的 JSON 对象:
参数 | 类型 | 必传 | 说明 |
---|---|---|---|
fromUserId | String | 是 | 发送人用户 ID。 注意:发送消息所使用的用户 ID 必须已获取过用户 Token,否则消息一旦触发离线推送,通知内无法正确显示发送者的用户信息。 |
toUserId | String[] | 是 | 接收用户 ID,提供多个本参数可以实现向多人发送消息,上限为 1000 人。 |
objectName | String | 是 | 消息类型,接受内置消息类型(见消息类型概述)或自定义消息的消息类型值。 注意:在自定义消息时,消息类型不可以 "RC:" 开头,以免与系统内置消息类型重名;消息类型长度不可超过 32 个字符。SDK 中必须已注册过该自定义消息,否则 SDK 收到该消息后将无法解析。 |
values | Array of objects | 是 | 为消息内容(content )、推送通知内容(pushContent )、推送数据(pushData )中的标识位(标识位示例:{d} )提供对应的值。 |
content | String | 是 | 所发送消息的内容,单条消息最大 128k。
|
pushContent | String[] | 是 | 指定收件人离线时触发的远程推送通知中的通知内容。注意:对于部分消息类型,该字段是否有值决定了是否触发远程推送通知。支持定义模板标识位,使用 values 中的值进行替换。
|
pushData | String[] | 否 | iOS 平台收到推送消息时,可从 payload 中获取 APNs 推送数据,对应字段名为 appData (提示:rc 字段中默认携带了消息基本信息)。Android 平台收到推送消息时对应字段名为 appData 。 |
isIncludeSender | Int | 否 | 是否向发件人客户端同步已发消息。1 表示同步,默认值为 0 ,即不同步。注意,仅设置该参数无法确保发件人客户端一定能获取到该条已发消息,您可能还需要启用其他服务。详见发件人客户端如何同步已发消息 |