当前位置:主页 > 查看内容

即时通信 IM 全员推送 - 服务端 API

发布时间:2021-10-18 00:00| 位朋友查看

简介:功能说明 支持全员推送。 支持按用户属性推送。 支持按用户标签推送。 管理员推送消息,接收方看到消息发送者是管理员。 管理员指定某一帐号向其他帐号推送消息,接收方看到发送者不是管理员,而是管理员指定的帐号。 支持消息离线存储,不支持漫游。 由于全……

功能说明

  • 支持全员推送。
  • 支持按用户属性推送。
  • 支持按用户标签推送。
  • 管理员推送消息,接收方看到消息发送者是管理员。
  • 管理员指定某一帐号向其他帐号推送消息,接收方看到发送者不是管理员,而是管理员指定的帐号。
  • 支持消息离线存储,不支持漫游。
  • 由于全员推送需要下发的帐号数量巨大,下发完全部帐号需要一定时间(根据帐号总数而定,一般在一分钟内)。

接口调用说明

本功能仅针对旗舰版客户开放申请(如您降级为专业版将无法使用),您可通过 工单 申请开通该功能,申请后我们将对您的需求进行评估,需求评估合理后您方可使用该功能

请求 URL 示例

https://console.tim.qq.com/v4/all_member_push/im_push?usersig=xxx&identifier=admin&sdkappid=88888888&random=99999999&contenttype=json

请求参数说明

参数 说明
https 请求协议为 HTTPS,请求方式为 POST
console.tim.qq.com 固定域名
v4/all_member_push/im_push 请求接口
usersig App 管理员帐号生成的签名,参见 UserSig 后台 API
identifier 必须为 App 管理员帐号
sdkappid 创建应用时,即时通信控制台分配的 SdkAppid
random 32位无符号整数随机数
contenttype 固定值为:json

调用频率

本接口包含全员/属性/标签推送,默认每天最多调用100次,每两次推送间隔必须大于1s。有特别频率需求的(如需提高频率),请在申请工单中说明。

请求包示例

  • 全员推送示例
    管理员进行全员推送:
    {
    "From_Account": "admin",
     "MsgRandom": 56512,
     "MsgBody": [
         {
             "MsgType": "TIMTextElem",
             "MsgContent": {
                 "Text": "hi, beauty"
             }
         }
     ]
    }
    管理员指定某一帐号进行全员推送(示例中发送方帐号为 xiaoming):
    {
    "From_Account": "xiaoming",
     "MsgRandom": 3674128,
     "MsgBody": [
         {
             "MsgType": "TIMTextElem",
             "MsgContent": {
                 "Text": "hi, beauty"
             }
         }
     ]
    }
    管理员指定某一帐号进行全员推送,同时设置离线推送信息:
    {
    "From_Account": "xiaoming",
     "MsgRandom": 3674128,
     "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”标签的用户推送消息:
    {
    "From_Account": "admin",
    "MsgRandom": 214,
    "Condition": {
      "TagsAnd": ["股票A","股票B"]
    },
    "MsgBody": [
      {
          "MsgType": "TIMTextElem",
          "MsgContent": {
              "Text": "hi, beauty"
          }
      }
    ]
    }
    管理员给带有关注”股票A“或“股票B”标签的用户推送消息:
    {
    "From_Account": "admin",
    "MsgRandom": 103698523,
    "Condition": {
      "TagsOr": ["股票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"
          }
      }
    ]
    }
  • 按用户属性推送
    管理员给在深圳的超白金会员用户推送消息:
    {
    "From_Account": "admin",
     "MsgRandom": 389475,
     "Condition": {
         "AttrsAnd": {
             "会员等级": "超白金会员",
             "city": "深圳"
         }
     },
     "MsgBody": [
         {
             "MsgType": "TIMTextElem",
             "MsgContent": {
                 "Text": "hi, beauty"
             }
         }
     ]
    }
    管理员给在深圳或者性别为男的用户推送消息:
    {
    "From_Account": "admin",
     "MsgRandom": 9657,
     "Condition": {
         "AttrsOr": {
             "sex": "男",
             "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 必填 消息随机数,由随机函数产生。用于推送任务去重。对于不同的推送请求,MsgRandom7 天之内不能重复,否则视为相同的推送任务(调用推送 API 返回失败的时候可以用相同的 MsgRandom 进行重试)
MsgBody Object 必填 消息内容,具体格式请参考 MsgBody 消息内容说明(一条消息可包括多种消息元素,所以 MsgBody 为 Array 类型)
MsgType String 必填 TIM 消息对象类型,目前支持的消息对象包括:
  • TIMTextElem(文本消息)
  • TIMFaceElem(表情消息)
  • TIMLocationElem(位置消息)
  • TIMCustomElem(自定义消息)
MsgContent Object 必填 对于每种 MsgType,用不同的 MsgContent 格式,具体可参考 TIMMsgElement 对象 的定义
MsgLifeTime Integer 选填 消息离线存储时间,单位秒,最多保存7天(604800秒)。默认为0,表示不离线存储
From_Account String 选填 消息推送方帐号
AttrsOr Object 选填 属性条件的并集。注意属性推送和标签推送不可同时作为推送条件
AttrsAnd Object 选填 属性条件的交集。注意属性推送和标签推送不可同时作为推送条件
TagsOr Object 选填 标签条件的并集。标签是一个不超过50字节的字符串。注意属性推送和标签推送不可同时作为推送条件。TagsOr 条件中的标签个数不能超过10个
TagsAnd Object 选填 标签条件的交集。标签是一个不超过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 JSON 格式请求包中 MsgBody 不符合消息格式描述,或者 MsgBody 不是 Array 类型,请参考 TIMMsgElement 对象 的定义。
90005 JSON 格式请求包体中缺少 MsgRandom 字段或者 MsgRandom 字段不是 Integer 类型。
90007 JSON 格式请求包体中 MsgBody 类型不是 Array 类型,请将其修改为 Array 类型。
90009 请求需要 App 管理员权限。
90010 JSON 格式请求包不符合消息格式描述,请参考 TIMMsgElement 对象 的定义。
90020 标签长度超过限制(不能超过50字节)。
90022 推送条件中的 TagsOr 和 TagsAnd 有重复标签。
90024 推送过于频繁,每两次推送间隔必须大于1秒。
90026 消息离线存储时间错误(最多不能超过7天)。
90032 推送条件中的 tag 数量大于10,或添加标签请求中的标签数量大于10。
90033 属性无效。
90039 按属性推送和按标签推送不可同时存在。
90040 推送条件中其中1个 tag 为空。
90045 未开通全员推送功能。
90047 推送次数超过当天限额(默认为100次)。
91000 服务内部错误,请重试。

接口调试工具

通过 REST API 在线调试 工具调试本接口。

参考

  • 全员推送接口说明
  • 设置应用属性名称
  • 获取应用属性名称
  • 设置用户属性
  • 删除用户属性
  • 获取用户属性
  • 添加用户标签
  • 获取用户标签
  • 删除用户标签
  • 删除用户所有标签

本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:配置告警 - 日志服务 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐