推送接口

最近更新时间:2020-11-27 15:05:54

接口说明

请求方式:POST。

服务地址/v3/push/app

接口服务地址与服务接入点一一对应,请选择与您的应用服务接入点对应的 服务地址

接口功能:Push API 是所有推送接口的统称。Push API 有多种推送目标,推送目标见下文。
所有请求参数通过 JSON 封装上传给后台,后台通过请求参数区分不同的推送目标。如有疑问请参见 服务端错误码

必要参数

推送必要参数指一条推送消息必需携带的参数。

参数名 类型 是否必需 描述
audience_type String 推送目标:
  • all:全量推送
  • tag:标签推送
  • token:单设备推送
  • token_list:设备列表推送
  • account:单账号推送
  • account_list:账号列表推送
  • package_account_push:号码包推送
  • package_token_push:token 文件包推送
  • message Object 消息体,请参见 消息体类型
    message_type String 消息类型:
  • notify:通知
  • message:透传消息/静默消息
  • environment String 是(仅 iOS 平台使用) 用户指定推送环境,仅限 iOS 平台推送使用:
  • product: 推送生产环境
  • dev: 推送开发环境
  • upload_id Integer 是(仅号码包推送\token文件包推送时使用) 号码包或 token 包的上传 ID

    audience_type:推送目标

    推送目标,表示一条推送可以被推送到哪些设备。
    Push API 提供了多种推送目标的,例如全量、标签、单设备、设备列表、单账号、账号列表。

    推送目标 描述 必需参数及使用说明
    all 全量推送
    tag 标签推送 1.tag_list
  • 推送 tag1 和 tag2 的设备{"tags":["tag1","tag2"],"op":"AND"}
  • 推送 tag1 或 tag 的设备{"tags":["tag1","tag2"],"op":"OR"}
  • 标签列表不能超过512个字符
  • 2.tag_rules:
  • 标签组合推送,可设置'与'、'或'、'非'组合规则
  • 注意:当与 tag_list 二者共存时,tag_list 字段自动无效,参数说明请查看 tag 标签组合规则
  • token 单设备推送 token_list
  • 如果该参数包含多个 token 只会推送第一个 token
  • 格式 eg:[“token1”]
  • token 字符串长度不能超过36
  • token_list 设备列表群推 token_list
  • 最多1000个 token
  • 格式 eg:["token1","token2"]
  • token 字符串长度不能超过36
  • account 单账号推送 account_list
  • 该参数有多个账号时,仅推送第一个账号
  • 格式 eg:["account1"]
  • account_list 账号列表群推 account_list
  • 最多1000个 account
  • 格式 eg:["account1","account2"]
  • package_account_push 号码包推送 上传号码包推送必填
    package_token_push token 文件包推送 上传 token 文件包推送必填

    tag 标签组合规则

    字段 类型 必填 描述
    tag_rules Array 标签规则集合,参见 tag_rules说明

    tag_rules说明

    字段 类型 父项目 必填 描述
    tag_items Array tag_rules 标签规则,参见 tag_items 说明
    operator String tag_rules tag_rules 数组内各元素的运算符,第一个 tag_rules 元素的 operator 为无效数据,第二个 tag_rules 元素的 operator 作为第一个和第二个 tag_rules 元素之间的运算符。
  • OR: 或运算
  • AND:且运算
  • is_not Boolean tag_rules 是否对 tag_items 数组的运算结果进行非运算。
  • true:进行非运算
  • false:不进行非运算。
  • tag_items 说明

    字段 类型 父项目 必填 描述
    tags Array tag_items 具体标签值,类型:string,如 tag1, guangdong 等。
    is_not Boolean tag_items 是否对 tag 数组的运算结果进行非运算。
  • true:非运算
  • false:不进行非运算
  • tags_operator String tag_items tags 内标签对应的运算符。
  • OR:或运算
  • AND:且运算。
  • items_operator String tag_items tag_items 数组内各元素的运算符,第一个 tag_items 元素的 items_operator 为无效数据,第二个 tag_items 元素的 items_operator 作为第一个和第二个 tag_items 元素之间的运算符。
  • OR :或运算
  • AND :且运算
  • tag_type String tag_items 参见 tag_type 取值表

    tag_type 取值表

    标签名称 tag_type 取值 标签名举例
    自定义标签 xg_user_define tag1, tag2 等
    App版本 xg_auto_version 1.1.0,1.2.0.1等
    设备省份信息 xg_auto_province guangdong,shanghai 等
    活跃信息 xg_auto_active 20200131,20200201等
    XG SDK版本 xg_auto_sdkversion 1.1.5.2,1.1.5.3等
    系统语言 xg_auto_systemlanguage zh,en 等
    手机品牌 xg_auto_devicebrand Xiaomi,vivo 等
    手机机型 xg_auto_deviceversion MI 9 SE,vivo X9Plus 等
    国家 xg_auto_country CN,SG 等
    说明:

    详细使用方法可参见 标签推送示例

    • 全量推送:推送给全部设备
      {
        "audience_type": "all"
      }
    • 标签推送(tag_rules方式):广东和湖南,并且是20200408当天活跃过的男性用户
     {
      "audience_type": "tag",
      "tag_rules": [
            {
                "tag_items": [
                    {
                        "tags": [
                            "guangdong",
                            "hunan"
                        ],
                        "is_not": false,   
                        "tags_operator": "OR",  
                        "items_operator": "OR", 
                        "tag_type": "xg_auto_province" 
                    },
                    {
                        "tags": [
                            "20200408"
                        ],
                        "is_not": false,
                        "tags_operator": "OR",
                        "items_operator": "AND",
                        "tag_type": "xg_auto_active"
                    },
                    {
                        "tags": [
                            "male"
                        ],
                        "is_not": false,
                        "tags_operator": "OR",
                        "items_operator": "AND",
                        "tag_type": "xg_user_define"
                    }
                ],
                "operator": "OR", 
                "is_not": false  
            }
        ]
    }
    • 单设备推送:推送给 token 为 token1 的设备
      {
        "audience_type": "token",
        "token_list": [
            "token1"
        ]
      }
    • 设备列表推送,推送给 token 为 token1 和 token2 的设备
      {
        "audience_type": "token_list",
        "token_list": [
            "token1",
            "token2"
        ]
      }
    • 单账号推送:推送给账号为 account1 的设备
      {
        "audience_type": "account",
        "account_list": [
            "account1"
        ]
      }
    • 账号列表推送:推送账号为 account1 和 account2 的设备
      {
        "audience_type": "account_list",
        "account_list": [
            "account1",
            "account2"
        ]
      }
    

    message_type:消息体类型

    针对不同平台,消息类型稍有不同,具体参照下表:

    消息类型 描述 支持平台 特性说明
    notify 通知栏消息 Android & iOS 通知栏展示消息
    message 透传消息/静默消息 Android(透传消息)
    iOS(静默消息)
    通知栏不展示消息因厂商限制,Android 透传消息只通过 TPNS 通道下发,无法通过厂商通道下发

    message:消息体

    消息体,即下发到客户端的消息。
    Push API 对 iOS 和 Android 两个平台的消息有不同处理,需要分开来实现对应平台的推送消息,推送的消息体是 JSON 格式。

    Android 普通消息

    Android 平台具体字段如下表:

    字段名 类型 父项目 默认值 必需 参数描述
    title String message 消息标题
    content String message 消息内容
    accept_time Array message 消息将在哪些时间段允许推送给用户。
  • 单个元素由 "start" 和 "end" 组成的起止时间对组成
  • "start" 和 "end" 由 hour (小时)和 min(分钟)描述对应时刻,详细参考具体示例。
  • 注意:因厂商限制, 仅对 TPNS 通道有效
  • thread_id String message 通知分组折叠的组别识别名
  • 注意:因厂商限制, 仅对 TPNS 通道有效
  • thread_sumtext String message 通知分组折叠后显示的摘要,thread_id 非空时有效
  • 注意:因厂商限制, 仅对 TPNS 通道有效
  • xg_media_resources String message 通知栏大图片 url 地址,仅对 TPNS 通道和小米通道生效;
  • 注意:如需使用小米通道大图通知功能,需先调用小米图片上传接口上传图片文件,获取小米指定的图片地址 pic_url ,再填入 TPNS 推送对应的参数 xg_media_resources 中。详情请参见 小米推送富文本消息 文档中的上传大图 API 部分
  • xg_media_audio_resources String message 音频富媒体元素地址。
  • 支持 mp3 格式音频,建议大小在5MB以内。
  • 注意:仅 TPNS 通道支持该参数下发,其他通道不下发该参数。
  • android Object message 安卓通知高级设置结构体,请参见 Android 结构体说明

    Android 结构体说明

    字段名 类型 父项目 默认值 必需 参数描述
    n_ch_id String Android 通知渠道 ID(仅 TPNS 推送通道生效),请参见 创建通知渠道
    n_ch_name String Android 通知渠道名称(仅 TPNS 推送通道生效) ,请参见 创建通知渠道
    xm_ch_id String Android 小米渠道 ID(仅小米推送通道生效)
    hw_ch_id String Android 华为渠道 ID(仅 华为推送通道生效)
    oppo_ch_id String Android OPPO渠道 ID(仅 OPPO 推送通道生效)
    vivo_ch_id String Android 0 vivo 渠道ID “0”代表运营消息,“1”代表系统消息(仅 vivo 推送通道生效)
    builder_id Integer Android 0 本地通知样式标识
    badge_type Integer android -1 通知角标,当前仅对华为设备生效。
  • -2:自动增加1;
  • -1:不变
  • ring Integer Android 1 是否有铃声
  • 0:没有铃声
  • 1:有铃声
  • ring_raw String Android 指定 Android 工程里 raw 目录中的铃声文件名,不需要后缀名
    vibrate Integer Android 1 是否使用震动
  • 0:没有震动
  • 1:有震动
  • lights Integer Android 1 是否使用呼吸灯
  • 0:不使用呼吸灯
  • 1:使用呼吸灯
  • clearable Integer Android 1 通知栏是否可清除
    icon_type Integer Android 0 通知栏缩略图显示的是应用内图标还是上传图标
  • 0:应用内图标
  • 1:上传图标
  • 仅 TPNS、华为通道支持
    icon_res String Android 上传的通知栏缩略图 url 地址,仅 TPNS、华为通道支持。缩略图格式要求可参考 富媒体通知文档
    style_id Integer Android 1 设置是否覆盖指定编号的通知样式
    small_icon String Android 消息在状态栏显示的图标,若不设置,则显示应用图标
    icon_color Integer Android 0 通知栏小图标染色,只针对 Google 设备有效。需要使用颜色的16进制,例如 0xFF00FFFF
    action Object Android 设置点击通知栏之后的行为,默认为打开 App
    action_type Integer Action 点击动作类型,
  • 1:打开 activity 或 App 本身
  • 2:打开浏览器
  • 3:打开 Intent(推荐 配置指引
  • custom_content String Android 用户自定义的参数(需要序列化为 json string)
    注意:
  • 为适配厂商高级功能,TPNS 于2020年7月15日正式将华为推送协议升级至 V4,华为 V4协议不支持通过 custom_content 字段携带业务自定义参数。
  • 如果您集成了华为厂商通道,建议您改用 intent 方式携带自定义参数,否则将导致自定义参数不能成功通过华为推送通道下发。
  • 若需继续使用原 V2 协议,可点击控制台右上角「扫码咨询」,为您开启白名单。
  • show_type Integer Android 2 应用前台时,是否展示通知 。 默认展示,仅对 TPNS 通道、FCM 通道有效。
  • 1:不展示
  • 2: 展示。
    说明:若取值为1且应用在前台,终端用户对该条推送无感知,但有抵达数据上报
  • 完整的消息示例如下:

    {
        "title": "xxx",
        "content": "xxxxxxxxx",
        "xg_media_resources": "xxx1" , //此处填富媒体元素地址,例如https://www.xx.com/img/bd_logo1.png?qua=high
        "xg_media_audio_resources":"xxx", //此处填音频富媒体元素地址,例如http://sc1.111ttt.cn/2018/1/03/13/396131227447.mp3 
        "thread_id":"活动_id",
        "thread_sumtext":"运营活动",
        "accept_time": [
            {
                "start": {//时间段起始时间,
                    "hour": "13",//起始时间 小时值, 取值 [0:24)
                    "min": "00"// 起始时间 分钟值, 取值[0:60)
                },
                "end": {//时间段结束时间
                    "hour": "14",//结束时间 小时值, 取值 [0:24)
                    "min": "00" //结束时间 分钟值,取值[0:60)
    
                }
            },
            {
                "start": {
                    "hour": "00",
                    "min": "00"
                },
                "end": {
                    "hour": "09",
                    "min": "00"
                }
            }
        ],
        "android": {
            "n_ch_id": "default_message",
            "n_ch_name": "默认通知",
            "n_id": 0,
            "builder_id": 0,
            "ring": 1,
            "ring_raw": "ring",
            "badge_type":-1, 
            "vibrate": 1,
            "lights": 1,
            "clearable": 1,
            "icon_type": 0,
            "icon_res": "xg",
            "style_id": 1,
            "small_icon": "xg",
            "action": {
                "action_type": 1,// 动作类型,1,打开activity或app本身;2,打开浏览器;3,打开Intent
                "activity": "xxx",
                "aty_attr": {// activity属性,只针对action_type=1的情况
                    "if": 0, // Intent的Flag属性
                    "pf": 0  // PendingIntent的Flag属性
                },
                "browser": {
                    "url": "xxxx ", // 仅支持http、https
                    "confirm": 1 // 是否需要用户确认
                },
                "intent": "xxx" //SDK版本需要大于等于1.0.9,然后在客户端的intent配置data标签,并设置scheme属性
            },
          "custom_content":"{\"key\":\"value\"}"
        }
    }
    

    iOS 普通消息

    iOS 平台具体字段如下表:

    字段名 类型 父项目 默认值 必需 参数描述
    title String message 消息标题,此字段会覆盖 alert 下的 title 中的内容。
    content String message 消息内容,此字段会覆盖 alert 下的 body 中的内容。
    thread_id String message 通知分组折叠的组别识别名
    ios Object message iOS 消息结构体,请参见 iOS 字段说明
    xg_media_resources String message 图片、音视频富媒体元素 url 地址

    iOS 字段说明

    字段名 类型 父项目 默认值 必需 参数描述
    aps Object ios 苹果推送服务(APNs)特有的消息体字段,详细介绍请参见 Payload
    alert Object aps 包含标题和消息内容
    badge_type Integer aps 用户设置角标数字:
  • -1:角标数字不变
  • -2:角标数字自动加1
  • >=0:设置自定义角标数字
  • category String aps 下拉消息时显示的操作标识
    mutable-content Integer aps 通知拓展参数。
  • 推送的时候携带 "mutable-content":1 ,说明是支持 iOS 10 的 Service Extension。
  • 开启后,推送详情中会有抵达数据上报,使用该功能前请按照 通知服务扩展的使用说明 实现 Service Extension 接口,如果不携带此字段则没有抵达数据上报
  • sound String aps sound 字段使用情况如下:
    1:播放系统默认提示音,"sound":"default"
    2:播放本地自定义铃声,"sound":"chime.aiff"
    3:静音效果,"sound":"" 或者是去除 sound 字段自定义铃声说明:格式必须是 Linear PCM、MA4(IMA/ADPCM)、alaw,μLaw 的一种,将声频文件放到项目 bundle 目录中,且时长要求30s以下,否则就是系统默认的铃声。
    custom_content String ios 自定义下发的参数,需要序列化为 json string
    xg String ios 系统保留 key,应避免使用

    完整的消息示例如下:

    {
        "title": "xxx",
        "content": "xxxxxxxxx",
        "thread_id":"活动_id",
        "xg_media_resources":"https://www.xx.com/img/bd_logo1.png",
        "ios":{
            "aps": {
                "alert": {
                    "subtitle": "my subtitle"
                },
                "badge_type": 5,
                "category": "INVITE_CATEGORY",
                "sound":"default",
                "mutable-content":1
            },
           "custom_content":"{\"key\":\"value\"}",
            "xg": "oops"
        }
    }
    

    Android 透传消息

    透传消息,Android 平台特有,即不显示在手机通知栏中的消息,可以用来实现让用户无感知的向 App 下发带有控制性质的消息。

    注意:

    因厂商限制,Android 透传消息只通过 TPNS 通道下发,无法通过厂商通道下发。

    Android 平台具体字段如下表:

    字段名 类型 父项目 默认值 是否必需 参数描述
    title String message 命令描述
    content String message 命令内容
    android Object message 安卓消息结构体
    custom_content String android 需要序列化为 json string
    accept_time Array message 消息将在哪些时间段允许推送给用户。
  • 单个元素由 "start" 和 "end" 组成的起止时间对组成。
  • "start" 和 "end" 由 hour (小时)和 min(分钟)描述对应时刻,详细参考具体示例。
  • 注意:因厂商限制, 仅对 TPNS 通道有效。
  • 具体完整示例:

    {
        "title": "this is title",
        "content": "this is content",
        "android": {
          "custom_content":"{\"key\":\"value\"}"
        },
        "accept_time": [
            {
                "start": {
                    "hour": "13",
                    "min": "00"
                },
                "end": {
                    "hour": "14",
                    "min": "00"
                }
            },
            {
                "start": {
                    "hour": "00",
                    "min": "00"
                },
                "end": {
                    "hour": "09",
                    "min": "00"
                }
            }
        ]
    }
    

    iOS 静默消息

    静默消息,iOS 平台特有,类似 Android 中的透传消息,消息不展示,当静默消息到达终端时,iOS 会在后台唤醒 App 一段时间(小于30s),让 App 来处理消息逻辑。

    具体字段如下表:

    字段名 类型 父项目 默认值 是否必要 参数描述
    aps Object ios 苹果推送服务(APNs)特有的,其中最重要的键值对如下:
    content-available:标识消息类型(必须为1),且不能包含 alert、sound、badge_type 字段
    详细介绍请参见 Payload
    ios Object message ios 消息结构体
    custom_content String ios 需要序列化为 json string
    xg String ios 系统保留 key,应避免使用

    具体完整示例:

    {
        "ios":{
            "aps": {
                "content-available": 1
            },
          "custom_content":"{\"key\":\"value\"}",
            "xg": "oops"
        }
    }

    可选参数

    Push API 可选参数是除了audience_typemessage_typemessage以外,可选的高级参数。

    参数名 类型 父项目 必需 默认值 描述
    expire_time Integer 259200(72小时) 消息离线存储时间(单位为秒),最长72小时
  • 若 expire_time = 0,则表示实时消息
  • 若 expire_time 大于0,且小于800s,则系统会重置为800s
  • 若expire_time >= 800s,按实际设置时间存储,最长72小时
  • 设置的最大值不得超过2147483647,否则会导致推送失败
  • send_time String 当前系统时间 指定推送时间,可选择未来90天内的时间:
  • 格式为 yyyy-MM-DD HH:MM:SS
  • 若小于服务器当前时间,则会立即推送
  • 仅全量推送和标签推送支持此字段
  • multi_pkg Boolean false 多包名推送:当 App 存在多个渠道包(例如应用宝、豌豆荚等),并期望推送时所有渠道的 App 都能收到消息,可将该值设置为 true。
    注意:该参数默认控制 TPNS 通道的多包名推送,需要实现厂商通道多包名推送详见 厂商通道多包名配置 文档
    loop_param Object 0 循环推送(全推,标签推)相关,详情见下文 loop_param 参数说明
    group_id String tpns_yyyymmdd,yyyymmdd 代表推送日期 该字段已废弃,后续会下线,若需要使用聚合统计请使用推送计划字段(plan_id)
    plan_id String 推送计划 ID,推送计划创建及使用方式可 参考文档
    tag_list Object 仅标签推送必需
  • 推送 tag1 和 tag2 的设备:{"tags":["tag1","tag2"],"op":"AND"}
  • 推送 tag1 或 tag2 的设备: {"tags":["tag1","tag2"],"op":"OR"}
  • account_list Array 单账号推送、账号列表推送时必需 若单账号推送:
  • 要求 audience_type = account
  • 参数格式:[ "account1" ]

  • 若账号列表推送:
  • 参数格式:["account1","account2"]
  • 最多1000 个 account
  • account_push_type Integer 账号推送时可选 0
  • 0:往账号的最新的 device 上推送信息
  • 1:往账号关联的所有 device 设备上推送信息
  • token_list Array 单设备推送、设备列表推送时必需 若单设备推送:
  • 要求 audience_type=token
  • 参数格式:[ "token1" ]
    若设备列表推送:
  • 参数格式:[ "token1","token2" ]
  • 最多1000 个 token
  • push_speed Integer 仅全量推送和标签推送有效 推送限速设置每秒 X 条,X 取值参数范围 1000 - 50000
    collapse_id Integer 系统默认分配一个 collapse_id
  • 消息覆盖参数,在前一条推送任务已经调度下发后,如果第二条推送任务携带相同的 collapse_id 则会停止前一条推送中尚未下发的 TPNS 通道数据,同时会覆盖展示第一条推送任务的消息。
  • 已完成任务的 collapse_id 可以通过 单个任务推送信息查询接口 获取。
  • 目前仅支持全推、标签推送、号码包推送。
  • channel_rules Array 推送通道选择策略。
  • 可自定义该条推送允许通过哪些通道下发,默认允许通过所有通道下发,详细推送策略参考 通道策略
  • channel_rules 数组单元素数据结构见下 channel_rules 参数说明
  • tpns_online_push_type Integer 0 在线设备是否通过 TPNS 通道下发:
  • 0:默认在线走 TPNS 通道下发
  • 1:在线不优先走 TPNS 通道下发
  • force_collapse Boolean false 对于不支持消息覆盖的 OPPO 、vivo 通道的设备,是否进行消息下发。
  • false:不下发消息
  • true:下发消息
  • 说明:

    对于 collapse_id,有以下使用条件:

    • 暂不支持用户自定义此参数,需要 TPNS 生成的 collapse_id。
    • 目前仅支持 TPNS 通道、APNS 通道、小米通道、魅族通道以及华为系统版本EMUI10及以上的设备。
    • 对于华为通道,覆盖消息时携带自定义参数需要使用 intent 方式,如使用 custom_content 方式携带自定义参数,接口层会进行拦截。
    • 目前 OPPO 通道 vivo 通道不支持覆盖消息。当新创建覆盖消息时可通过 force_collapse 字段设置为 false 来关闭 vivo、OPPO 通道的下发。

    channel_rules 参数说明

    字段名 类型 是否必填 参数说明
    channel String 下发推送通道。
  • hw:华为通道
  • xm:小米通道
  • mz:魅族通道
  • vivo:vivo 通道
  • oppo:OPPO 通道
  • apns:APNs 通道
  • disable Boolean 是否关闭 channel 中对应的通道, 默认打开通道。
  • true:关闭
  • false:打开
  • loop_param 参数说明

    字段名 类型 是否必填 注释
    startDate String 循环区间开始日期,可选择未来90天内的时间。格式YYYY-MM-DD,如2019-07-01
    endDate String 循环区间截止日期,可选择未来90天内的时间。格式YYYY-MM-DD,如2019-07-07
    loopType Integer 循环类型
  • 1:按天
  • 2:按周
  • 3:按月
  • loopDayIndexs Array 按周循环,填周几[0-6],按天填 0,如[0, 1, 2],表示每周的周一,周二,周三进行推送
    dayTimes Array 具体推送时间,格式 HH:MM:SS,如["19:00:00", "20:00:00"],表示每天的19点,20点进行推送

    应答参数

    字段名 类型 是否必填 注释
    seq Integer 与请求包一致(如果请求包是非法 json 该字段为0)
    push_id String 推送 ID
    ret_code Integer 错误码,详细参照错误码对照表
    environment String 用户指定推送环境,仅支持 iOS
  • product: 生产环境
  • dev: 开发环境
  • err_msg String 请求出错时的错误信息
    result String 请求正确时
  • 若有额外数据要返回,则结果封装在该字段的 json 中
  • 若无额外数据,则可能无此字段
  • 示例说明

    Android 标签推送请求消息( tag_list 方式)

    {
        "audience_type": "tag",
        "tag_list": {
            "tags": [
                "tag1",
                "tag2"
            ],
            "op": "AND"
        },
        "multi_pkg":true,
        "push_speed":50000,
        "channel_rules": [
            {
                "channel": "mz",
                "disable": true
            },
            {
                "channel": "xm",
                "disable": false
            }
        ],
        "message_type": "notify",
        "message": {
        "title": "测试标题",
        "content": "测试内容",
        "xg_media_resources": "xxx1" , //此处填富媒体元素地址,例如https://www.xx.com/img/bd_logo1.png?qua=high
        "xg_media_audio_resources":"xxx", //此处填音频富媒体元素地址,例如http://sc1.111ttt.cn/2018/1/03/13/396131227447.mp3 
        "accept_time": [
            {
                "start": {//时间段起始时间,
                    "hour": "13",//起始时间 小时值, 取值 [0:24)
                    "min": "00"// 起始时间 分钟值, 取值[0:60)
                },
                "end": {//时间段结束时间
                    "hour": "14",//结束时间 小时值, 取值 [0:24)
                    "min": "00" //结束时间 分钟值,取值[0:60)
    
                }
            },
            {
                "start": {
                    "hour": "00",
                    "min": "00"
                },
                "end": {
                    "hour": "09",
                    "min": "00"
                }
            }
        ],
        "android": {
            "n_ch_id": "default_message",
            "n_ch_name": "默认通知",
            "n_id": 0,
            "builder_id": 0,
            "ring": 1,
            "ring_raw": "ring",
            "badge_type":-1,
            "vibrate": 1,
            "lights": 1,
            "clearable": 1,
            "icon_type": 0,
            "icon_res": "xg",
            "style_id": 1,
            "small_icon": "xg",
            "action": {
                "action_type": 1,// 动作类型,1,打开 activity 或 app 本身;2,打开浏览器;3,打开 Intent
                "activity": "xxx",
                "aty_attr": {// activity属性,只针对action_type=1的情况
                    "if": 0, // Intent的Flag属性
                    "pf": 0  // PendingIntent的Flag属性
                },
                "browser": {
                    "url": "xxxx ", // 仅支持http、https
                    "confirm": 1 // 是否需要用户确认
                },
                "intent": "xxx" //SDK版本需要大于等于1.0.9,然后在客户端的intent配置data标签,并设置scheme属性
            },
          "custom_content":"{\"key\":\"value\"}"
        }
    }
    }

    标签推送应答消息

    {
        "seq": 0,
        "environment": "product",
        "ret_code": 0,
        "push_id": "3895624686"
    }
    

    iOS 单设备推送请求消息

    {
        "audience_type": "token",
        "environment":"dev",
        "token_list": [ "05da87c0ae********fa9e08d884aada5bb2"],
        "message_type":"notify",
        "message":{
         "title": "推送标题",
        "content": "推送内容",
        "ios":{
            "aps": {
                "alert": {
                    "subtitle": "推送副标题"
                },
                "badge_type": -2,
                "sound":"Tassel.wav",
                "category": "INVITE_CATEGORY"
    
            },
           "custom_content":"{\"key\":\"value\"}",
            "xg": "oops"
        }
     }
    }

    单设备推送应答消息

    {
        "seq": 0,
        "push_id": "427184209",
        "ret_code": 0,
        "environment": "dev",
        "err_msg": "",
        "result": "[0]"
    }

    标签推送场景(tag_rules 方式)

    场景一:广东和湖南,并且是20200408当天活跃过的男性用户
    表达式:(xg_auto_province.guangdong 或 xg_auto_province.hunan)与 xg_auto_active.20200408 与 xg_user_define.male

    {
      "audience_type": "tag",
      "tag_rules": [
            {
                "tag_items": [
                    {
                        "tags": [
                            "guangdong",
                            "hunan"
                        ],
                        "is_not": false,   //是否对tags内标签计算的结果进行非运算,true-进行非运算,false-不进行非运算
                        "tags_operator": "OR",  //tags内标签对应的运算符
                        "items_operator": "OR", //tag_items内各元素的运算符,第一个元素的items_operator为无效数据,第二个元素的items_operator作为第一个和第二个元素之前的运算符,以此类推
                        "tag_type": "xg_auto_province" //tags内标签对应的标签类型
                    },
                    {
                        "tags": [
                            "20200408"
                        ],
                        "is_not": false,
                        "tags_operator": "OR",
                        "items_operator": "AND",
                        "tag_type": "xg_auto_active"
                    },
                    {
                        "tags": [
                            "male"
                        ],
                        "is_not": false,
                        "tags_operator": "OR",
                        "items_operator": "AND",
                        "tag_type": "xg_user_define"
                    }
                ],
                "operator": "OR", 
                "is_not": false  
            }
        ]
    }
    

    场景二:近3天活跃,并且app版本不为1.0.2的华为用户
    表达式:(xg_auto_active.20200406 或 xg_auto_active.20200407 或 xg_auto_active.20200408)与 (非 xg_auto_version.1.0.2) 与 xg_auto_devicebrand.huawei

    {
      "audience_type": "tag",
      "tag_rules": [
            {
                "tag_items": [
                    {
                        "tags": [
                            "20200406",
                            "20200407",
                            "20200408"
                        ],
                        "is_not": false,   //是否对tags内标签计算的结果进行非运算,true-进行非运算,false-不进行非运算
                        "tags_operator": "OR",  //tags内标签对应的运算符
                        "items_operator": "OR", //tag_items内各元素的运算符,第一个元素的items_operator为无效数据,第二个元素的items_operator作为第一个和第二个元素之前的运算符,以此类推
                        "tag_type": "xg_auto_active" //tags内标签对应的标签类型
                    },
                    {
                        "tags": [
                            "1.0.2"
                        ],
                        "is_not": true,
                        "tags_operator": "OR",
                        "items_operator": "AND",
                        "tag_type": "xg_auto_verison"
                    },
                    {
                        "tags": [
                            "huawei"
                        ],
                        "is_not": false,
                        "tags_operator": "OR",
                        "items_operator": "AND",
                        "tag_type": "xg_auto_devicebrand"
                    }
                ],
                "operator": "OR", 
                "is_not": false  
            }
        ]
    }
    目录