全员推送,用户运营利器,不仅支持全员发送特定内容,还可根据标签、属性,针对特定用户群体发送个性化内容,如会员活动、区域通知等,助力拉新、转化、促活等各个阶段运营工作的有效进行。
功能说明
支持全员推送。
支持按用户属性推送。
支持按用户标签推送。
管理员推送消息,接收方看到消息发送者是管理员。
管理员指定某一账号向其他账号推送消息,接收方看到发送者不是管理员,而是管理员指定的账号。
支持消息离线存储,不支持漫游。
由于全员推送需要下发的账号数量巨大,下发完全部账号需要一定时间(根据账号总数而定,一般在一分钟内)。
支持只推在线用户,需要将 MsgLifeTime 参数设置为0。
接口调用说明
请求 URL 示例
https://xxxxxx/v4/all_member_push/im_push?usersig=xxx&identifier=admin&sdkappid=88888888&random=99999999&contenttype=json
请求参数说明
参数 | 说明 |
https | 请求协议为 HTTPS,请求方式为 POST |
xxxxxx | SDKAppID 所在国家/地区对应的专属域名: 中国: console.tim.qq.com 新加坡: adminapisgp.im.qcloud.com 首尔: adminapikr.im.qcloud.com 法兰克福: adminapiger.im.qcloud.com 硅谷: adminapiusa.im.qcloud.com 雅加达: adminapiidn.im.qcloud.com |
v4/all_member_push/im_push | 请求接口 |
usersig | |
identifier | 必须为 App 管理员账号 |
sdkappid | 创建应用时,即时通信控制台分配的 SdkAppid |
random | 32位无符号整数随机数 |
contenttype | 固定值为:json |
调用频率
本接口包含全员/属性/标签推送,默认每天最多调用100次,每两次推送间隔必须大于1s。
请求包示例
全员推送示例
管理员进行全员推送,并且消息离线保存120秒(即2分钟):
{"From_Account": "admin","MsgRandom": 56512,"MsgLifeTime": 120,"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hi, beauty"}}]}
管理员指定某一账号进行全员推送,并且消息离线保存120秒(即2分钟)(示例中发送方账号为 xiaoming):
{"From_Account": "xiaoming","MsgRandom": 3674128,"MsgLifeTime": 120,"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hi, beauty"}}]}
管理员指定某一账号进行全员推送,同时设置离线推送信息,并且消息离线保存120秒(即2分钟):
{"From_Account": "xiaoming","MsgRandom": 3674128,"MsgLifeTime": 120,"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hi, beauty"}}],"OfflinePushInfo": {"PushFlag": 0,"Desc": "离线推送内容","Ext": "这是透传的内容","AndroidInfo": {"Sound": "android.mp3"},"ApnsInfo": {"Sound": "apns.mp3","BadgeMode": 1, // 这个字段缺省或者为 0 表示需要计数,为 1 表示本条消息不需要计数,即右上角图标数字不增加"Title":"apns title", // apns title"SubTitle":"apns subtitle", // apns subtitle"Image":"www.image.com" // image url}}}
管理员给全员推送消息,并且消息离线保存120秒(即2分钟):
{"From_Account": "admin","MsgRandom": 21302570,"MsgLifeTime": 120,"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hi, beauty"}}]}
按用户标签推送示例
管理员给带有关注“股票A”和“股票B”标签的用户推送消息,并且消息离线保存120秒(即2分钟):
{"From_Account": "admin","MsgRandom": 214,"MsgLifeTime": 120,"Condition": {"TagsAnd": ["股票A","股票B"]},"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hi, beauty"}}]}
管理员给关注”股票A“或“股票B”的用户推送消息,并且消息离线保存120秒(即2分钟):
{"From_Account": "admin","MsgRandom": 124032,"MsgLifeTime": 120,"Condition": {"TagsOr": ["股票A","股票B"]},"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hi, beauty"}}]}
按用户属性推送
管理员给在深圳的超白金会员用户推送消息,并且消息离线保存120秒(即2分钟):
{"From_Account": "admin","MsgRandom": 389475,"MsgLifeTime": 120,"Condition": {"AttrsAnd": {"会员等级": "超白金会员","city": "深圳"}},"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hi, beauty"}}]}
管理员给在深圳的超白金用户推送消息,并且消息离线保存120秒(即2分钟):
{"From_Account": "admin","MsgRandom": 9312457,"MsgLifeTime": 120,"Condition": {"AttrsAnd": {"会员等级": "超白金用户","city": "深圳"}},"MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "hi, beauty"}}]}
请求包字段说明
字段 | 类型 | 属性 | 说明 |
Condition | Object | 选填 | Condition 共有4种条件类型,分别是: 属性的“或条件”AttrsOr 属性的“与条件”AttrsAnd 标签的“或条件”TagsOr 标签的“与条件”TagsAnd AttrsOr 和 AttrsAnd 可以并存,TagsOr 和 TagsAnd 也可以并存。但是标签和属性条件不能并存。如果没有 Condition,则推送给全部用户 |
MsgRandom | Integer | 必填 | 消息随机数(32位无符号整数),后台用于同一秒内的消息去重。请确保该字段填的是随机 |
MsgBody | Array | 必填 | |
MsgType | String | 必填 | TIM 消息对象类型,目前支持的消息对象包括: TIMTextElem(文本消息) TIMLocationElem(位置消息) TIMFaceElem(表情消息) TIMCustomElem(自定义消息) TIMSoundElem(语音消息) TIMImageElem(图像消息) TIMFileElem(文件消息) TIMVideoFileElem(视频消息) |
MsgContent | Object | 必填 | |
MsgLifeTime | Integer | 选填 | 消息离线存储时间,单位秒,最多保存7天(604800秒)。默认为0,表示不离线存储,即只推在线用户 |
From_Account | String | 选填 | 消息推送方账号 |
AttrsOr | Object | 选填 | 属性条件的并集。注意属性推送和标签推送不可同时作为推送条件 |
AttrsAnd | Object | 选填 | 属性条件的交集。注意属性推送和标签推送不可同时作为推送条件 |
TagsOr | Array | 选填 | 标签条件的并集。标签是一个不超过50字节的字符串。注意属性推送和标签推送不可同时作为推送条件。TagsOr 条件中的标签个数不能超过10个 |
TagsAnd | Array | 选填 | 标签条件的交集。标签是一个不超过50字节的字符串。注意属性推送和标签推送不可同时作为推送条件。TagsAnd 条件中的标签个数不能超过10个 |
OfflinePushInfo | Object | 选填 | 离线推送信息配置,具体可参考 消息格式描述 |
应答包体示例
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0,"TaskId": "1400123456_144115212910570789_4155518400_15723514"}
应答包字段说明
字段 | 类型 | 说明 |
ActionStatus | String | 请求处理的结果: OK:表示处理成功 FAIL:表示失败 |
ErrorCode | Integer | 错误码 |
ErrorInfo | String | 错误信息 |
TaskId | String | 推送任务 ID |
错误码说明
除非发生网络错误(例如502错误),否则该接口的 HTTP 返回码均为200。真正的错误码,错误信息是通过应答包体中的 ErrorCode、ErrorInfo 来表示的。公共错误码(60000到79999)参见 错误码 文档。
本 API 私有错误码如下:
错误码 | 含义说明 |
90001 | JSON 格式解析失败,请检查请求包是否符合 JSON 规范。 |
90002 | |
90005 | JSON 格式请求包体中缺少 MsgRandom 字段或者 MsgRandom 字段不是 Integer 类型。 |
90007 | JSON 格式请求包体中 MsgBody 类型不是 Array 类型,请将其修改为 Array 类型。 |
90009 | 请求需要 App 管理员权限。 |
90010 | |
90020 | 标签长度超过限制(不能超过50字节)。 |
90022 | 推送条件中的 TagsOr 和 TagsAnd 有重复标签。 |
90024 | 推送过于频繁,每两次推送间隔必须大于1秒。 |
90026 | 消息离线存储时间错误(最多不能超过7天)。 |
90032 | 推送条件中的 tag 数量大于10,或添加标签请求中的标签数量大于10。 |
90033 | 属性无效。 |
90039 | 按属性推送和按标签推送不可同时存在。 |
90040 | 推送条件中其中1个 tag 为空。 |
90045 | 未开通全员推送功能。 |
90047 | 推送次数超过当天限额(默认为100次)。 |
91000 | 服务内部错误,请重试。 |
接口调试工具
参考