Logo Site EngageLab Mark Colored Transparent文档
搜索

创建推送 API

向某单个设备或者某设备列表推送一条通知、或者消息。 推送的内容只能是 JSON 表示的一个推送对象。

这是 Push API 最近的版本。v4 版本的改进为:

  • 使用 HTTP Basic Authentication 的方式做访问授权。这样整个 API 请求可以使用常见的 HTTP 工具来完成,比如:curl,浏览器插件等。
  • 推送内容完全使用 JSON 的格式。

请求频率限制

我们的API对调用频率有限制,以确保服务的稳定性和公平性。每个AppKey的QPS(每秒查询量)限制如下:

  • 标准限制:每秒最多500次请求。
  • 高级限制:如果您是我们的付费计划用户,且您的付费AppKey需要更高的QPS限制,请联系我们的商务团队:Sales@engagelab.com

请求方式

POST

调用地址

接口服务地址与数据中心选择接入点一一对应,请选择与您的应用服务接入点对应的 调用地址。

目前EngageLab已部署支持了多个数据中心接入点,不同服务接入点之间数据完全隔离,您可根据创建产品时选择的数据中心接入点选择调用地址。

POST v4/push
              
              POST v4/push

            
此代码块在浮窗中显示

调用验证

详情参见 REST API 概述的 鉴权方式 说明。

请求示例

请求头

> POST /v4/push HTTP/1.1 > Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==
              
              > POST /v4/push HTTP/1.1
> Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==

            
此代码块在浮窗中显示

请求体

{ "from": "push", "to": "all", "body": { "platform": "all", "notification": { "alert" :"Hello, Push!", "android": { "alert": "Hi, Push!", "title": "Send to Android", "builder_id": 1, "extras": { "newsid": 321 } }, "ios": { "alert": "Hi, MTPush!", "sound": "default", "badge": "+1", "extras": { "newsid": 321 } }, "hmos":{ "alert": "Hi, MTPush!", "category": "IM", "intent": {"url": "action.system.home"}, "badge_add_num": 1, "test_message": false, "style":0, "push_type":0 } }, "message": { "msg_content": "Hi,MTPush", "content_type": "text", "title": "msg", "extras": { "key": "value" } }, "options": { "time_to_live": 60, "apns_production": false } }, "request_id": "12345678", "custom_args":{ "Engagelab": "push to you" } } > POST /v4/push HTTP/1.1 > Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==
              
              {
    "from": "push",
    "to": "all",
    "body": {
        "platform": "all",
        "notification": {
            "alert" :"Hello, Push!",
            "android": {
                "alert": "Hi, Push!",
                "title": "Send to Android",
                "builder_id": 1,
                "extras": {
                    "newsid": 321
                }
            },
            "ios": {
                "alert": "Hi, MTPush!",
                "sound": "default",
                "badge": "+1",
                "extras": {
                    "newsid": 321
                }
            },
            "hmos":{
                "alert": "Hi, MTPush!",
                "category": "IM",
                "intent": {"url": "action.system.home"},
                "badge_add_num": 1,
                "test_message": false,
                "style":0,
                "push_type":0
            }
        },
        "message": {
            "msg_content": "Hi,MTPush",
            "content_type": "text",
            "title": "msg",
            "extras": {
                "key": "value"
            }
        },
        "options": {
            "time_to_live": 60,
            "apns_production": false
        }
    },
    "request_id": "12345678",
    "custom_args":{
             "Engagelab": "push to you"
    }
}
> POST /v4/push HTTP/1.1
> Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==

            
此代码块在浮窗中显示

请求参数

推送的参数结构体,详见下表:

关键字 类型 选项 含义
from String 可选 当前业务发送,需要小于等于500个字符方
to String 或 JSON Object 必填 发送目标
body JSON Object 必填 发送请求体
platform String 或 JSON Array 必填 推送平台
notification JSON Object 可选
  • 通知内容体,是被推送到客户端的内容。
  • 与 message 一起二者必须有其一,二者不可以并存。
  • message JSON Object 可选
  • 消息内容体,是被推送到客户端的内容。
  • 与 notification 一起二者必须有其一,二者不可以并存。
  • options JSON Object 可选 推送参数
    request_id String 可选 客户自定义的可选字段,客户用来标识是哪条请求,响应时返回,需要小于等于100个字符
    custom_args JSON Object 可选 客户自定义的可选字段,回调时返回给客户。最大不超过128个字符。

    from

    当前业务发送方,String 类型,可选字段。

    请求示例

    { "from":"push" }
                  
                  {
        "from":"push"
    }
    
                
    此代码块在浮窗中显示

    to

    推送设备对象,表示一条推送可以被推送到哪些设备列表。确认推送设备对象,App Push 提供了多种方式,比如:别名、标签、注册ID、分群、广播等。

    推送目标

    广播外的设备选择方式,有如下几种:

    关键字 类型 含义 说明 备注
    all String 发广播 给全部设备进行推送 推送目标为365天内活跃过的设备。
    tag JSON Array 标签 数组。多个标签之间是 OR 的关系,即取并集。 用标签来进行大规模的设备属性、用户属性分群。
  • 一次推送最多 20 个。
  • 有效的 tag 组成:字母(区分大小写)、数字、下划线、汉字。
  • 限制:每一个 tag 的长度限制为 40 字节。(判断长度需采用UTF-8编码)
  • tag_and JSON Array 标签AND 数组。多个标签之间是 AND 关系,即取交集。 注意与 tag 区分,一次推送最多 20 个。
    tag_not JSON Array 标签NOT 数组。多个标签之间,先取多标签的并集,再对该结果取补集。 一次推送最多 20 个。
    alias JSON Array 别名 数组。多个别名之间是 OR 关系,即取并集。 用别名来标识一个用户。
  • 一个设备只能绑定一个别名。
  • 一次推送最多 1000 个。
  • 有效的 alias 组成:字母(区分大小写)、数字、下划线、汉字。
  • 限制:每一个 alias 的长度限制为 40 字节。(判断长度需采用UTF-8编码)
  • registration_id JSON Array 注册ID 数组。多个注册ID之间是 OR 关系,即取并集。 设备标识。一次推送最多 1000 个。
    live_activity_id string 实时活动标识 字符串,对应 iOS SDK liveActivityId 的值 实时活动更新的时候必填
    seg JSON 用户分群 ID 在页面创建的用户分群的 ID。定义为数组,但目前限制一次只能推送一个。 目前限制是一次只能推送一个。

    数组里多个值之间隐含的关系是是 OR,即取并集;但 tag_and 不同,其数组里多个值之间是 AND 关系,即取交集。

    tag_not若单独使用,则我们会在广播用户中做tag_not处理。

    这几种类型可以并存。并存时多项的隐含关系是 AND,即取交集。例如:

    "to" : {"tag" : [ "tag1", "tag2"], "tag_and" : ["tag3", "tag4"], "tag_not" : ["tag5", "tag6"] }

    先计算 "tag" 字段的结果 tag1 或 tag2 = A;

    再计算 "tag_and" 字段的结果 tag3 且 tag4 = B;

    再计算 "tag_not" 字段的结果 非 (tag5 或 tag6) = C;

    "to" 的最终结果为 A 且 B 且 C


    示例

    • 推送给全部(广播):
    { "to": "all", }
                  
                  {
      "to": "all",
    }
    
                
    此代码块在浮窗中显示
    • 推送给多个标签(只要在任何一个标签范围内都满足):在深圳、广州、或者北京
    { "to":{ "tag":[ "深圳", "广州", "北京" ] } }
                  
                  {
        "to":{
            "tag":[
                "深圳",
                "广州",
                "北京"
            ]
        }
    }
    
                
    此代码块在浮窗中显示
    • 推送给多个标签(需要同时在多个标签范围内):在深圳并且是“女”
    { "to":{ "tag_and":[ "深圳", "女" ] } }
                  
                  {
        "to":{
            "tag_and":[
                "深圳",
                "女"
            ]
        }
    }
    
                
    此代码块在浮窗中显示
    • 推送给多个别名:
    { "to":{ "alias":[ "4314", "892", "4531" ] } }
                  
                  {
        "to":{
            "alias":[
                "4314",
                "892",
                "4531"
            ]
        }
    }
    
                
    此代码块在浮窗中显示
    • 推送给多个注册ID:
    { "to": { "registration_id": [ "100d85590955c1d235b", "101d85590955c1d2340", "126c83f760363f6fb1b" ] } }
                  
                  {
      "to": {
        "registration_id": [
          "100d85590955c1d235b",
          "101d85590955c1d2340",
          "126c83f760363f6fb1b"
        ]
      }
    }
    
                
    此代码块在浮窗中显示
    • 可同时推送指定多类推送目标:在深圳或者广州,并且是 “女” “会员”
    { "to":{ "tag":[ "深圳", "广州" ], "tag_and":[ "女", "会员" ] } }
                  
                  {
        "to":{
            "tag":[
                "深圳",
                "广州"
            ],
            "tag_and":[
                "女",
                "会员"
            ]
        }
    }
    
                
    此代码块在浮窗中显示

    推送实时活动

    { "to": { "live_activity_id": "LiveActivity-1" } }
                  
                    {
          "to": {
              "live_activity_id": "LiveActivity-1"
          }
      }
    
                
    此代码块在浮窗中显示
    • 推送给用户分群ID:
    { "to": { "seg": { "id":"segid" } } }
                  
                  {
      "to": {
        "seg": {
          "id":"segid"
        }
      }
    }
    
                
    此代码块在浮窗中显示

    body

    发送请求体。支持的字段如下:

    关键字 类型 选项 含义
    platform String 或 JSON Array 必填 推送平台
    notification JSON Object 可选
  • 通知内容体,是被推送到客户端的内容。
  • voip、message、notificatioin、live_activity任一消息不可与其他消息并存
  • message JSON Object 可选
  • 消息内容体,是被推送到客户端的内容。
  • voip、message、notificatioin、live_activity任一消息不可与其他消息并存
  • live_activity JSON Object 可选
  • 实时活动消息内容体,是被推送到客户端的内容。
  • voip、message、notificatioin、live_activity任一消息不可与其他消息并存
  • voip JSON Object 可选
  • voip消息内容体,是被推送到客户端的内容。
  • voip、message、notificatioin、live_activity任一消息不可与其他消息并存
  • options JSON Object 可选 推送参数

    platform

    MTPush 当前支持 Android, iOS 平台的推送。其关键字分别为:"android", "ios", "hmos"。

    如果目标平台为 iOS 平台,您需要在 options 中通过 apns_production 字段来指定推送环境。True 表示推送生产环境,False 表示要推送开发环境。

    推送到所有平台:

    { "platform" : "all" }
                  
                  { "platform" : "all" }
    
                
    此代码块在浮窗中显示

    指定特定推送平台:

    { "platform": [ "android", "ios", "hmos" ] }
                  
                  {
      "platform": [
        "android",
        "ios",
        "hmos"
      ]
    }
    
                
    此代码块在浮窗中显示

    notification

    “通知”对象,是一条推送的实体内容对象之一(另一个是“消息”),是会作为“通知”推送到客户端的。

    关键字 类型 选项 含义 说明
    alert String 或 JSON Object 必填 内容 消息内容本身。若 android、ios 下没有指定 alert,则以此为准。
    android JSON Object 选填 android 平台属性 android 平台推送参数,详见android 说明
    ios JSON Object 选填 ios 平台属性 ios 平台推送参数,详见ios 说明
    hmos JSON Object 选填 hmos 平台属性 hmos 平台推送参数,详见hmos 说明

    alert

    这个位置的 "alert" 属性(直接在 notification 对象下),是一个快捷定义,各平台的 alert 信息如果都一样,则可不定义平台下的 alert,以此为准。如果各平台有定义,则覆盖这里的定义。

    { "notification" : { "alert" : "Hello, Push!" } }
                  
                  {
      "notification" : {
        "alert" : "Hello, Push!"
      }
    }
    
                
    此代码块在浮窗中显示

    上面定义的 notification 对象,将被推送到 "platform" 指定的多个平台,并且其通知 alert 信息都一样。

    android

    Android 平台上的通知,被 MTPush SDK 按照一定的通知栏样式展示。支持的字段如下:

    关键字 类型 选项 含义 说明
    alert String 或 JSON Object 必填 通知内容
  • 指定后会覆盖上级统一配置的 alert 内容。
  • 内容可以为空字符串,表示不在通知栏展示文本。
  • 各推送通道对此字段的限制详见 推送限制
  • title String 可选 通知标题
  • 若指定该字段,通知栏原本展示 App 名称的位置将显示 title
  • 各推送通道对此字段的限制详见 推送限制
  • builder_id Int 可选 通知栏样式 ID
  • Android SDK 支持自定义通知栏样式
  • 该字段用于指定使用哪一套样式 ID。
  • channel_id String 可选 Android 通知通道 ID
  • 长度不超过 1000 字节。
  • Android 8.0 及以上支持 NotificationChannel 配置,通过 channel_id 指定通知展示策略。
  • priority Int 可选 通知优先级
  • 默认值为 0
  • 取值范围:-2 ~ 2
  • category String 可选 通知分类
  • 用于系统对通知进行过滤或排序。
  • 具体行为依赖 ROM 厂商实现。
  • style Int 可选 通知样式类型
  • 默认值 0
  • 1 = bigText
  • 2 = Inbox
  • 3 = bigPicture
  • big_text String 可选 大文本通知样式
  • style = 1 时生效。
  • 通知内容将以大文本形式展示。
  • 支持 API 16 及以上系统。
  • inbox JSONObject 可选 多行文本通知样式
  • style = 2 时生效。
  • 最多支持 5 条内容,每条最大 1024 字符。
  • 示例:{"box0":"content1"}
  • 支持 API 16 及以上系统。
  • big_pic_path String 可选 大图通知样式
  • style = 3 时生效。
  • 支持 .jpg.png 图片格式;.JPEG.BMP 仅支持 FCM 通道。
  • 支持网络图片 URL 或本地图片路径。
  • 若为 http/https URL,SDK 会自动下载。
  • 若使用本地图片,请填写 sdcard 相对路径。
  • 图片大小上限 1MB。
  • extras JSON Object 可选 扩展字段
  • 开发者可自定义 JSON Key/Value 数据供业务使用。
  • intent JSON Object 可选 点击通知后的跳转配置(推荐)
  • 通过 intent.url 指定点击通知后的跳转目标。
  • 建议配置该字段,否则点击通知后可能无法执行跳转操作。
  • 支持以下三种类型:
  • 1. 跳转到指定 Activity
    json intent:#Intent;action=action_path;component=package_name/ActivityFullName;end 2. 打开应用首页
    json intent:#Intent;action=android.intent.action.MAIN;end
    3. 跳转到 Deeplink
    text scheme://path?key1=val1&key2=val2
    large_icon String 可选 通知大图标
  • 图标大小不超过 300 KB。
  • 支持网络图片 URL 或本地图片路径。
  • 若为 http/https URL,SDK 会自动下载。
  • small_icon String 可选 通知小图标
  • 支持 httphttps 网络图片。
  • 图片大小不超过 300 KB。
  • 若未配置厂商 small_icon_uri,默认使用该字段。
  • sound String 可选 通知铃声
  • 填写 Android 工程 /res/raw/ 目录中的铃声文件名(无需后缀)。
  • 注意: Android 8.0 及以上版本,当设置 channel_id 时该属性不生效。
  • badge_add_num Int 可选 角标累加值
  • 在原角标数量基础上累加。
  • 仅华为 EMUI 8.0+、小米 MIUI 6+、vivo 厂商通道生效。
  • 取值范围:1-99
  • 建议设置为 1
  • badge_set_num Int 可选 角标固定值
  • 直接设置角标数值。
  • 取值范围:0-99
  • badge_class String 可选 桌面入口 Activity
  • 示例:com.test.badge.MainActivity
  • 仅华为通道生效。
  • 若需角标累加,必须与 badge_add_num 同时使用。
  • display_foreground String 可选 前台展示通知
  • 1:APP 在前台时展示通知。
  • 0:APP 在前台时不展示通知。
  • 默认展示。
  • MTPush Android SDK v4.3.1+ 支持。
  • group_id String 可选 消息分组 ID
  • 用于控制通知折叠。
  • MTPush Android SDK v5.3.0+ 支持。
  • is_fold String 可选 是否折叠
  • true:折叠。
  • false:不折叠。
  • 需与 group_id 一起使用。
  • 相同 group_idis_fold=true 时自动折叠。
  • MTPush Android SDK v5.3.0+ 支持。
  • { "notification": { "android": { "alert": "hello, MTPush!", "title": "Push test", "builder_id": 3, "style": 1, "big_text": "big text content", "priority": 0, "category": "category str", "large_icon": "http://pushapi-sgp.engagelab.com/largeIcon.jpg", "small_icon": "http://www.small.com/small_icon.jpg", "intent": { "url": "intent:#Intent;component=pushapi-sgp.engagelab.com/com.example.mtpushdemo.SettingActivity;end" }, "extras": { "news_id": 134, "my_key": "a value" } } } }
                  
                  {
        "notification": {
            "android": {
                "alert": "hello, MTPush!",
                "title": "Push test",
                "builder_id": 3,
                "style": 1,
                "big_text": "big text content",
                "priority": 0,
                "category": "category str",
                "large_icon": "http://pushapi-sgp.engagelab.com/largeIcon.jpg",
                "small_icon": "http://www.small.com/small_icon.jpg",
                "intent": {
                    "url": "intent:#Intent;component=pushapi-sgp.engagelab.com/com.example.mtpushdemo.SettingActivity;end"
                },
                "extras": {
                    "news_id": 134,
                    "my_key": "a value"
                }
            }
        }
    }
    
                
    此代码块在浮窗中显示

    ios

    iOS 平台上 APNs 通知。

    该通知内容会由 MTPush 代理发往 Apple APNs 服务器,并在 iOS 设备上以系统通知的方式呈现。

    该通知内容满足 APNs 的规范,支持的字段如下:

    关键字 类型 选项 含义 说明
    alert String 或 JSON Object 必填 通知内容
  • 指定后将覆盖上级统一配置的 alert 信息。
  • 内容为空字符串时不展示通知栏。
  • 支持字符串形式,也支持 Apple 官方定义的 alert payload 结构,该结构中可包含 titlesubtitle 等系统支持的字段。
  • sound String 或 JSON Object 可选 通知提示声音
  • 普通通知:使用 String 类型指定声音文件名称。
  • 若未传该字段,则消息无声音提示。
  • 若传入字段且找到对应声音文件,则播放指定声音,否则播放系统默认声音。
  • 若该字段为空字符串,iOS 7 为默认声音,iOS 8 及以上系统为无声音。
  • 告警通知:支持 JSON Object 类型,遵循 Apple 官方 payload 结构,可包含 criticalnamevolume 等字段。
  • badge Int 或 String 可选 应用角标
  • 支持设置为 N+N-N,N 的取值范围为 [0,99]
  • 例如设置为 10,表示角标为 10;设置为 +10 表示在当前角标基础上增加 10;设置为 -10 表示减少 10(小于 0 时自动清除角标)。
  • 设置为 0 或空字符串表示清除角标。
  • 若不传该字段,则不修改当前角标值。
  • MTPush 官方 API Library(SDK)默认会填充 "+1"
  • content-available Boolean 可选 推送唤醒 设置 "content-available": true 时表示 Background Remote Notification(后台推送)。若不携带该字段,则为普通 Remote Notification。详情参考:Background Remote Notification
    mutable-content Boolean 可选 通知扩展
  • iOS 10 新增的 Notification Service Extension 功能。
  • 使用该功能需要客户端实现 Service Extension 接口
  • 服务端通过设置 mutable-content 字段启用该功能。
  • true 表示支持 iOS 10 的 UNNotificationServiceExtension 功能。
  • 若不携带该字段,则为普通 Remote Notification,无法统计消息送达数据。
  • category String 可选 通知分类 iOS 8 及以上版本支持,对应 APNs payload 中的 category 字段。
    extras JSON Object 可选 扩展字段 自定义 Key / Value 数据,用于业务扩展。
    thread-id String 可选 通知分组 iOS 通过该字段对通知进行分组,具有相同 thread-id 的通知会归为同一组。
    interruption-level String 可选 通知中断级别 iOS 15 新增通知级别,取值为 activecriticalpassivetimeSensitive。详情参考:UNNotificationInterruptionLevel
    |
                  
                                                                                                                                                                                                                        |
    
                
    此代码块在浮窗中显示

    iOS 通知 MTPush 要转发给 APNs 服务器。 MTPush 中 Notification 长度限制为 4000 个字节。 MTPush 在推送时使用 utf-8 编码,所以一个汉字占用 3 个字节长度。

    服务端发送示例:

    { "notification": { "ios": { "alert": "hello, Push!", "sound": "sound.caf", "badge": 1, "extras": { "news_id": 134, "my_key": "a value" } } } }
                  
                  {
        "notification": {
            "ios": {
                "alert": "hello, Push!",
                "sound": "sound.caf",
                "badge": 1,
                "extras": {
                    "news_id": 134,
                    "my_key": "a value"
                }
            }
        }
    }
    
                
    此代码块在浮窗中显示

    客户端收到的消息:

    { "_j_msgid" = 813843507; aps = { alert = "hello,Push!"; badge = 1; sound = "sound.caf"; }; "my_key" = "a value"; "news_id" = 134; }
                  
                  {
      "_j_msgid" = 813843507;
      aps =     {
      alert = "hello,Push!";
      badge = 1;
      sound = "sound.caf";
    };
    "my_key" = "a value";
    "news_id" = 134;
    }
    
                
    此代码块在浮窗中显示

    hmos

    HarmonyOS 平台上的通知,由 MTPush SDK 按照一定的通知栏样式进行展示。支持的字段如下:

    关键字 类型 选项 含义 说明
    alert String 必填 通知内容
  • 指定后会覆盖上级统一指定的 alert 信息。
  • 可为空字符串,表示不展示到通知栏。
  • 各推送通道对此字段的限制详见 推送限制
  • title String 可选 通知标题
  • 指定后,通知中原本展示 App 名称的位置将显示该 title
  • 各推送通道对此字段的限制详见 推送限制
  • category String 必填 通知栏消息分类条目
  • 厂商要求的必填字段。
  • 实际效果依赖 ROM 对 category 的处理策略。
  • SDK 未对该字段进行必填校验,请开发者自行保证传递。
  • 取值需符合鸿蒙官方云端 category 规范。
  • large_icon String 可选 通知栏大图标
  • 需传递 HTTPS 图片地址,例如:https://example.com/image.png
  • 图片大小不超过 30 KB。
  • 图片分辨率限制:宽 × 高 < 12800 像素。
  • intent JSON Object 必填 指定点击通知后的跳转目标
  • 通过 intent.url 指定通知点击后的跳转地址。
  • 厂商要求必填字段,SDK 未进行必填校验,请开发者自行保证传递。
  • 支持三种跳转方式:应用首页 action.system.home、Deeplink scheme://test?key1=val1&key2=val2、Action 跳转 com.test.action
  • 示例:{"url":"action.system.home"}
  • badge_add_num Int 可选 角标累加值
  • 不填表示不修改当前角标值。
  • 取值范围:1–99
  • 新角标值 = 当前角标值 + badge_add_num
  • badge_set_num Int 可选 角标固定值
  • 不填表示不修改当前角标值。
  • 取值范围:0–99
  • 设置后将直接覆盖原角标值。
  • test_message Boolean 可选 测试消息标识 false 表示正常消息(默认),true 表示测试消息。
    receipt_id String 可选 华为回执 ID 用于指定本次消息的回执配置,可在鸿蒙回执参数配置中查看对应 ID。
    extras JSON Object 可选 扩展字段 自定义 JSON Key / Value 数据,用于业务扩展。
    style Int 可选 通知栏样式类型 默认值为 0,支持 0(普通样式)和 3(多行文本样式)。
    inbox_content String[] 可选 多行文本内容
  • 仅当 style = 3 时生效。
  • 最多支持 3 条内容。
  • 单条最大长度 1024 字符,超出部分将以 ... 截断。
  • push_type Int 可选 推送类型 默认值为 0,支持 0(通知消息)、2(通知拓展消息)、10(VoIP 呼叫消息),其它值将返回错误。
    extra_data String 可选 扩展数据
  • 对应华为 extraData 字段。
  • push_type = 210 时必填。
  • push_type = 0 时该字段将被忽略。
  • display_foreground String 可选 APP 前台是否展示通知 "1" 表示 APP 在前台时展示通知,"0" 表示 APP 在前台时不展示通知。
    { "notification": { "hmos":{ "alert": "Hi, MTPush!", "title": "", "category": "", "intent": {"url": ""}, "badge_add_num": 1, "test_message": true, "receipt_id":"", "extras":{}, "style":0, "inbox_content":[], "push_type":0, "extra_data":"", "display_foreground":"1" } } }
                  
                  {
        "notification": {
            "hmos":{
                "alert": "Hi, MTPush!",
                "title": "",
                "category": "",
                "intent": {"url": ""},
                "badge_add_num": 1,
                "test_message": true,
                "receipt_id":"",
                "extras":{},
                "style":0,
                "inbox_content":[],
                "push_type":0,
                "extra_data":"",
                "display_foreground":"1"
            }
        }
    }
    
                
    此代码块在浮窗中显示

    message

    应用内消息。或者称作:自定义消息,透传消息。

    • 此部分内容不会展示到通知栏上,MTPush SDK 收到消息内容后透传给 App。App 需要自行处理。
    • iOS 在推送应用内消息通道(非 APNS)获取此部分内容,需 App 处于前台。

    支持的字段如下:

    关键字 类型 选项 含义
    msg_content String 或 JSON Object 必填 消息内容本身
    title String 可选 消息标题
    content_type String 可选 消息内容类型
    extras JSON Object 可选 JSON 格式的可选参数
    test_message Boolean 可选 测试消息标识,针对鸿蒙使用
    receipt_id String 可选 华为回执 ID ,针对鸿蒙使用

    示例:

    { "message": { "msg_content": "Hi,Push", "content_type": "text", "title": "msg", "extras": { "key": "value" } } }
                  
                  {
      "message": {
        "msg_content": "Hi,Push",
        "content_type": "text",
        "title": "msg",
        "extras": {
          "key": "value"
        }
      }
    }
    
                
    此代码块在浮窗中显示

    live_activity

    注意:实时活动消息要求使用 iOS P8 证书,对应 WebPortal 集成设置中 iOS 鉴权方式需要选择「Token Authentication配置」方式。

    实时活动消息内容体,有如下字段信息:

    关键字 类型 选项 说明
    ios JSON Object 必填 详细字段参考下表iOS JSON Object 部分。

    iOS JSON Object

    关键字 类型 选项 说明
    event string 必填 创建:“start”,更新:“update”,结束:"end";必填
    attributes-type string 可选 实时活动类型,开发者自定义值,当event=start时该参数必填
    content-state JSON Object 必填 实时活动动态内容,需与客户端 SDK 值匹配(对应 Apple 官方的content-state 字段)。
    alert JSON Object 可选 参考下表iOS alert JSON Object 说明。
    dismissal-date int 可选 实时活动结束展示时间。
    attributes JSON Object 可选 实时活动静态内容,需与客户端 SDK 值匹配(对应 Apple 官方的attributes字段)。
    stale-date int 可选 实时活动显示过期时间,如果该时间小于当前时间,实时活动将不会更新
    relevance-score int 可选 实时活动在灵动岛上展示的优先级,取值[1,100],该值和实时活动的重要性呈正相关,不填默认为最高
    apns-priority int 可选 为5或10 ,不填默认为10。因为时候活动通知每小时是有频控限制的,apns-priority=5的通知将不消耗苹果厂商频控配额,当超出频控上限,推送通知将被限制

    iOS alert JSON Object

    关键字 类型 选项 说明
    title string 可选 显示到Apple Watch的消息标题。
    body string 可选 显示到Apple Watch的消息内容。
    sound string 可选 提示音。
    • iOS 实时活动消息(Live Activity) Engagelab Push 要转发给苹果服务器。苹果要求实时活动消息 (ActivityKit)远程推送的动态更新数据大小不超过 4096 字节。
    • Engagelab Push 因为需要重新组包,并且考虑一点安全冗余,要求 "live_activity" 参数体内 "iOS":{ } 及大括号内的总体长度不超过:3584 个字节。JPush 使用 utf-8 编码,所以一个汉字占用 3 个字节长度。

    实时活动推送示例

    实时活动使用的attributes-type和live_activity_id均来自开发者sdk上报,在使用实时活动前必须上报设备的push-to-start token和update-token,详细流程参考苹果厂商实时活动说明

    • 创建实时活动
    { "from": "push", "to": { "registration_id": [ "161a3797c816b134042" ] }, "body": { "platform": "ios", "live_activity": { "ios": { "event": "start", "content-state": { "eventStr": "hello", "eventTime": 1685952000 }, "attributes": { "name": "1", "number": 2, "tag": "mytag" }, "alert": { "title": "hello", "body": "welcome" }, "attributes-type": "my_la_type", "relevance-score": 100, "apns-priority": 100 } } }, "request_id": "12345678", "custom_args": { "activity_id": "LA20260313001", "user_id": "U987654321", "page_jump": "/live/activity/detail", "ext_info": { "version": "1.0.0", "env": "production" } } }
                  
                  {
        "from": "push",
        "to": {
            "registration_id": [
                "161a3797c816b134042"
            ]
        },
        "body": {
            "platform": "ios",
            "live_activity": {
                "ios": {
                    "event": "start",
                    "content-state": {
                        "eventStr": "hello",
                        "eventTime": 1685952000
                    },
                    "attributes": {
                        "name": "1",
                        "number": 2,
                        "tag": "mytag"
                    },
                    "alert": {
                        "title": "hello",
                        "body": "welcome"
                    },
                    "attributes-type": "my_la_type",
                    "relevance-score": 100,
                    "apns-priority": 100
                }
            }
        },
        "request_id": "12345678",
        "custom_args": {
            "activity_id": "LA20260313001",
            "user_id": "U987654321",
            "page_jump": "/live/activity/detail",
            "ext_info": {
                "version": "1.0.0",
                "env": "production"
            }
        }
    }
    
                
    此代码块在浮窗中显示
    • 更新实时活动
    { "from": "push", "to": { "live_activity_id": "my_la_id" }, "body": { "platform": "ios", "live_activity": { "ios": { "event": "update", "content-state": { "eventStr": "test_live", "eventTime": 198 }, "alert": { "title": "123411", "body": "123411" } } } }, "request_id": "12345678", "custom_args": { "activity_id": "LA20260313001", "user_id": "U987654321", "page_jump": "/live/activity/detail", "ext_info": { "version": "1.0.0", "env": "production" } } }
                  
                    {
         "from": "push",
         "to": {
               "live_activity_id": "my_la_id"
          },
          "body": {
              "platform": "ios",
              "live_activity": {
                  "ios": {
                      "event": "update",
                      "content-state": {
                          "eventStr": "test_live",
                          "eventTime": 198
                      },
    
                      "alert": {
                          "title": "123411",
                          "body": "123411"
                      }
                  }
              }
          },
          "request_id": "12345678",
          "custom_args": {
            "activity_id": "LA20260313001",
            "user_id": "U987654321",
            "page_jump": "/live/activity/detail",
            "ext_info": {
                "version": "1.0.0",
                "env": "production"
            }
        }
      }
    
                
    此代码块在浮窗中显示

    voip

    iOS VOIP 功能。 该类型不支持和 iOS 的 其他消息类型并存,请求参数结构参考:

    { "from": "push", "to": { "registration_id": [ "1a0018970a91da03de5" ] }, "request_id": "12345", "custom_args": { "activity_id": "LA20260313001", "user_id": "U987654321", "page_jump": "/live/activity/detail", "ext_info": { "version": "1.0.0", "env": "production" } } "body": { "platform": "ios", "voip": { "key": "value // 任意自定义 key/value 对,会透传给 APP" } } }
                  
                  {
        "from": "push",
        "to": {
            "registration_id": [
                "1a0018970a91da03de5"
            ]
        },
        "request_id": "12345",
        "custom_args": {
            "activity_id": "LA20260313001",
            "user_id": "U987654321",
            "page_jump": "/live/activity/detail",
            "ext_info": {
                "version": "1.0.0",
                "env": "production"
            }
        }
        "body": {
            "platform": "ios",
            "voip": {
                "key": "value  // 任意自定义 key/value 对,会透传给 APP"
            }
        }
    }
    
                
    此代码块在浮窗中显示

    options

    当前推送可选项已包含如下几个选项:

    关键字 类型 选项 含义 说明
    time_to_live Int 或 String 可选 离线消息保留时长(秒)
  • 当用户离线时,消息会在服务器端保留指定时间,用户上线后可再次接收。
  • 默认值:86400(1 天),最长支持 15 天。
  • 若厂商支持的最大值小于传入值,则以厂商最大值为准。
  • 设置为 0 表示不保留离线消息,仅当前在线用户可以接收。
  • override_msg_id Long 可选 覆盖消息 ID
  • 用于覆盖之前已发送的通知消息。
  • 填写需要覆盖的 msg_id 后,新消息会替换原通知内容。
  • 若用户已收到该通知但仍存在于通知栏,则会被新消息内容覆盖。
  • 覆盖操作有效期为 1 天。
  • 若在有效期内未找到对应 msg_id,将返回 7006 错误。
  • 该字段仅对 Android 生效,支持 EngageLab 通道、小米、魅族、OPPO、FCM 和华为通道(EMUI 10 及以上)。
  • apns_production Boolean 可选 APNs 是否为生产环境
  • 仅对 iOS Notification 生效。
  • true 表示推送到 APNs 生产环境。
  • false 表示推送到 APNs 开发环境。
  • 若集成设置中开启“生产证书用于开发环境”,该字段默认值为 false
  • 若未开启该配置,该字段默认值为 true
  • 建议在推送请求中显式指定该字段。
  • apns_collapse_id String 可选 iOS 通知更新标识
  • 若新通知与通知中心中已有通知的 apns-collapse-id 相同,则新通知会更新旧通知内容。
  • 更新后的通知会置于通知中心顶部。
  • 长度不超过 64 bytes。
  • big_push_duration Int 可选 定速推送时长(分钟)
  • 用于控制推送速率,在指定时间内均匀向目标用户发送消息。
  • 最大值为 1440(24 小时)。
  • multi_language JSON Object 可选 多语言推送配置 推送内容的多语言适配设置,详情参考 multi_language
    third_party_channel JSON Object 可选 Android 厂商通道配置 仅对已配置厂商通道的应用生效,详情参考 third_party_channel
    classification Int 可选 推送消息分类
  • EngageLab 不对该字段进行校验。
  • 默认值为 0
  • 0:运营消息。
  • 1:系统消息。
  • voice_value String 可选 语音文件配置
  • 多个参数使用英文逗号分隔。
  • # 的参数表示需要解析,不带 # 的参数默认匹配对应 mp3 文件。
  • 若参数包含小数点,文件名需使用 point.mp3
  • 当前支持语言:en(英语)、zh-Hans(简体中文)、zh-Hant(繁体中文)。
  • 若未匹配到对应语言规则,则该推送不会转换为语音播报。
  • enhanc_message Boolean 可选 启用通知增强显示
  • true 表示开启,false 表示关闭。
  • 当用户关闭通知权限时,开启该功能后,APP 在前台运行时会以应用内消息形式展示原本的通知内容。
  • 默认值为 false
  • plan_id String 可选 推送计划标识 需先创建推送计划标识,可通过控制台或 API 创建。
    cid String 可选 推送请求唯一标识
  • 用于防止重复推送。
  • 仅允许字母、数字、下划线和减号。
  • 长度不超过 64 个字符。
  • 同一 AppKey 下必须保持唯一。
  • 使用详情参考:如何避免重复推送
  • auto_truncation Boolean 可选 厂商通道消息超长自动截断
  • 默认值为 true
  • 当消息内容超过厂商通道限制时,将自动截断。
  • 若不希望自动截断,可传入 false 关闭该功能。
  • multi_language

    本字段是 EngageLab Push 服务的多语言推送功能。它允许您为不同语言的用户推送定制化的通知内容。通过在推送请求中指定多个语言及对应的消息内容、标题和 iOS 子标题,您可以针对用户的语言设置发送适当的推送通知。

    请求参数
    关键字 类型 选项 含义 说明
    en string 可选 多语言key 对应推送用户语言,key码详见附录
    content string 可选 消息内容 根据用户语言替换notification.android.alert、notification.ios.alert、notification.web.alert、message.msg_content里的数据
    title string 可选 消息标题 根据用户语言替换notification.android.title、notification.ios.alert、notification.web.title、message.title里的数据
    ios_subtitle string 可选 ios子标题 根据用户语言替换notification.ios.alert里的数据
    请求示例
    { "options": { "multi_language": { "en": { "content": "", "title": "", "ios_subtitle": "" } } } }
                  
                     {
        "options": {
          "multi_language": {
            "en": {
              "content": "",
              "title": "",
              "ios_subtitle": ""
            }
          }
        }
       }
    
                
    此代码块在浮窗中显示

    third_party_channel

    本字段用来填写 Android 厂商通道的个性化信息,key 只支持 xiaomi、huawei、meizu、oppo、vivo、fcm、honor、hmos 这 7 个 Android 厂商通道,可以为其中一个或者多个同时存在,每个厂商类型的 KEY 当前可包含如下几个可选项:

    请求参数
    关键字 类型 选项 含义 说明
    distribution_new String 必选 Engagelab 和厂商通道并存时,设置下发优先级 取值不能为空字符串。
  • mtpush:表示推送强制走 Engagelab 通道下发。
  • pns_mtpush:表示针对 fcm+ 国内厂商组合类型用户,推送强制优先走小米 / 华为 / 魅族 /oppo/vivo/荣耀 通道下发,无效再走engagelab通道。
  • mtpush_pns:表示针对 fcm+ 国内厂商组合类型用户,推送优先走engagelab,engagelab不在线再走厂商通道,厂商作为辅助。
  • fcm_mtpush:表示针对 fcm+ 国内厂商组合类型用户,推送强制优先走 fcm 通道下发,无效再走engagelab通道
  • mtpush_fcm:表示针对 fcm+ 国内厂商组合类型用户,推送优先走engagelab,engagelab不在线再走 fcm 通道,fcm 作为辅助。``注:针对pns_mtpush/fcm_mtpush/mtpush_pns/mtpush_fcm这四种策略而言,如果设备可用的系统推送通道仅有一种(FCM或者手机厂商),则会忽略指定FCM和厂商通道的策略,走集成成功的系统通道(FCM或者厂商通道)。
  • channel_id String 可选 通知栏消息分类
  • 为了适配小米、华为、oppo 手机厂商通知栏消息分类,由开发者自行向手机厂商申请,具体申请规则参考:厂商消息分类使用指南
  • 注意华为数据处理位置为中国区的应用不支持该字段,详情参见 华为自定义通知渠道
  • android 下也有 channel_id 字段,若本字段有填充,则优先使用,若无填充则以 android.channel_id 的定义为准。
  • 特别注意:由于 OPPO 厂商 2024.11.20 实施OPPO消息分类新规,建议您同时填写此字段和下面的category、notify_level字段。
  • classification Int 可选 通知栏消息分类 vivo 手机厂商通知栏消息分类,不填默认为 0。
  • 0:代表运营消息。
  • 1:代表系统消息。``目前 vivo 对系统消息分类较为严格,具体规则参考:vivo开发者平台
  • pushMode Int 可选 vivo推送模式 不填默认为 0。详情参考vivo pushMode,使用测试推送需要手动在 vivo 后台配置测试设备的 ID 。
  • 0:表示正式推送。
  • 1:表示测试推送。
  • importance String 可选 华为/荣耀通知栏消息智能分类 为了适配华为手机厂商的通知栏消息智能分类,对应华为的 importance 字段,不填充默认为 "NORMAL",参考:华为通知消息智能分类
  • LOW:一般消息。
  • NORMAL:重要消息。
  • HIGH:非常重要消息(仅华为支持)。
  • urgency String 可选 华为厂商自定义消息优先级 为了适配华为手机厂商自定义消息的优先级。
  • HIGH:非常重要消息,HIGH 级别消息到达用户手机时可强制拉起应用进程。
  • NORMAL:重要消息。``设置“HIGH”需要向华为申请特殊权限,参考:特殊权限如何申请
  • category String 可选 华为厂商自定义消息场景标识 为了适配华为、vivo、OPPO 手机厂商消息,用于标识「云端通知」消息类型,确定消息提醒方式,对特定类型消息加快发送。
  • 对应值及其说明参考:华为 category 值说明 vivo 分类标准
  • oppo category 值说明
  • 说明1:华为需完成 自分类权益申请
  • 说明2:华为从 2023.09.15 开始基于《华为消息分类标准》对其云端通知和本地通知进行共同管控推送,开发者通过EngageLab服务发起推送时,请注意此字段传值要符合华为官方「华为云端通知 category」取值要求。
  • 说明3:vivo 具体规则参考 vivo 官方说明
  • 说明4:OPPO于2024.11.20实施消息分类新规,具体规则参考 OPPO 官方说明
  • notify_level Int 可选 OPPO通知栏消息提醒等级
  • 官方取值定义:1-通知栏、2-通知栏+锁屏、16-通知栏+锁屏+横幅+震动+铃声;请开发者按照官网定义传递,EngageLab仅做透传处理。
  • 根据官方说明 notify_level 字段,仅对「服务与通讯类」消息生效。
  • 使用notify_level参数时,category参数必传。
  • small_icon_uri String 可选 厂商消息小图标样式
  • 目前支持小米 / 华为厂商。
  • 优先使用厂商字段, 厂商字段没有填充,则使用 android 内的 small_icon 字段。
  • 小米支持 小米厂商的大图标 id,华为、支持 Engagelab 的 media_id 。(小米官方后续不再支持自定义小图标,建议开发者不要继续使用小米 small Icon 相关特性功能)。
  • small_icon_color String 可选 小米厂商小图标样式颜色 为了适配小米厂商的消息小图标样式颜色,不填充默认是灰色 (小米官方后续不在支持自定义小图标,建议开发者不要继续使用小米 small icon 相关特性功能)。
    big_text String 可选 厂商消息大文本样式
  • 为了适配厂商的消息大文本样式, 目前支持华为/荣耀/小米/OPPO,其中小米OPPO最多支持128个字符。
  • 优先使用此厂商字段, 厂商字段没有填充,则使用 android 里面定义 big_text 字段。
  • android里面字段style=1时使用。
  • only_use_vendor_style Boolean 可选 是否使用自身通道设置样式 是否只使用自身通道设置的样式,不使用 android 里面设置的样式,默认为 false,
  • true:只使用自身通道设置的样式。
  • false:可使用 android 里面设置的样式。
  • big_picture_id String 可选 OPPO大图id
  • 大图id【style为3时,必填】,通过上传大图接口获得大图id后可使用。
  • small_picture_id String 可选 OPPO通知图标id
  • 通知图标id,通过上传小图接口获得小图id后可使用。
  • 为统一多厂商通道策略并简化配置逻辑,现对 distribution_new 字段的配置方式做如下调整,您的旧厂商级配置仍可继续生效,但建议逐步迁移至全局配置以规避未来兼容风险。(2025.04.03起执行下列新规则):

    • 配置优先级(新规则)
      • 第一优先级:全局配置 third_party_channel.distribution_new推荐新方式示例:"distribution_new": "pns_mtpush"
      • 第二优先级:厂商级配置 third_party_channel.{厂商key}.distribution_new(兼容旧方式)
        仅当全局配置未设置时生效
      • 无配置时:使用默认策略:pns_mtpush

    兼容性说明

    • 兼容性保障:旧厂商级配置在未设置全局字段时仍会生效,不影响现有业务。
    • 冲突解决:若同时配置全局和厂商级字段,仅读取全局值并忽略厂商级配置。
    • 远期规划:厂商级 distribution_new 可能在后续版本废弃,请尽量提前适配。
    • 鸿蒙说明:使用third_party_channel.hmos.distribution_new,不受全局配置影响
    请求示例
    { "third_party_channel": { "distribution_new": "pns_mtpush", "xiaomi": { "channel_id": "*******", "small_icon_uri": "http://f6.market.xiaomi.com/download/MiPass/x/x.png", "small_icon_color": "#ABCDEF" }, "huawei": { "importance": "NORMAL", "small_icon_uri": "https://xx.com/xx.jpg", "only_use_vendor_style": true }, "oppo": { "channel_id": "*******", "big_picture_id": "", "small_picture_id": "" }, "vivo": { "pushMode": 0 }, "hmos": { "distribution_new": "pns_mtpush" } } }
                  
                  {
        "third_party_channel": {
            "distribution_new": "pns_mtpush",
            "xiaomi": {
                "channel_id": "*******",
                "small_icon_uri": "http://f6.market.xiaomi.com/download/MiPass/x/x.png",
                "small_icon_color": "#ABCDEF"
            },
            "huawei": {
                "importance": "NORMAL",
                "small_icon_uri": "https://xx.com/xx.jpg",
                "only_use_vendor_style": true
            },
            "oppo": {
                "channel_id": "*******",
                "big_picture_id": "",
                "small_picture_id": ""
            },
            "vivo": {
                "pushMode": 0
            },
            "hmos": {
                "distribution_new": "pns_mtpush"   
            }
        }
    }
    
                
    此代码块在浮窗中显示

    request_id

    请求 id,客户自定义的可选字段。客户用来标识是哪条请求,响应时返回。

    请求示例

    { "request_id":"12345678" }
                  
                  {
          "request_id":"12345678"
    }
    
                
    此代码块在浮窗中显示

    返回示例

    { "msg_id": "1225764", "request_id": "12345678" }
                  
                  {
        "msg_id": "1225764",
        "request_id": "12345678"
    }
    
                
    此代码块在浮窗中显示

    custom_args

    客户自定义的,可选字段,响应时不返回,回调时返回。

    请求示例

    { "custom_args":{ "args1": "args1" } }
                  
                  {
      "custom_args":{
        "args1": "args1"
      }
    }
    
                
    此代码块在浮窗中显示

    返回参数

    成功返回

    字段 类型 选项 描述
    request_id String 可选 请求时提交的自定义 ID,响应时原样返回。
    message_id String 必选 消息 ID,唯一标识某一条消息。
    < HTTP/1.1 200 OK < Content-Type: application/json {"request_id":"18","msg_id":"1828256757"}
                  
                  < HTTP/1.1 200 OK
    < Content-Type: application/json
    {"request_id":"18","msg_id":"1828256757"}
    
                
    此代码块在浮窗中显示

    失败返回

    http 状态码为 4xx 或者 5xx,响应体包含字段如下:

    字段 类型 选项 描述
    code int 必选 错误码,详见错误码 说明
    message String 必选 错误详情
    { "error":{ "code": 3002, "message": "Push.template field must be set correctly when type is template" } }
                  
                  {
        "error":{
        "code": 3002,
        "message": "Push.template field must be set correctly when type is template"
        }
    }
    
                
    此代码块在浮窗中显示

    调用返回

    HTTP 状态码

    参考文档:HTTP-Status-Code

    错误码

    Code 描述 详细解释 HTTP Status Code
    20101 推送参数无效 registration_id 无效或不属于当前 appkey 400
    21001 只支持 HTTP Post 方法 不支持 Get 方法 405
    21002 缺少了必须的参数 必须改正 400
    21003 参数值不合法 必须改正 400
    21004 验证失败 必须改正,详情请看:调用验证 401
    21005 消息体太大 必须改正, Notification/Message长度限制为 4000 字节 400
    21008 app_key 参数非法 必须改正,请仔细对比你所传的 appkey 是否与应用信息中的一致,是否多了空格 400
    21009 系统内部错误 请联系技术支持团队 400
    21011 没有满足条件的推送目标 请检查 to 字段 400
    21015 请求参数校验失败 存在非预期的参数 400
    21016 请求参数校验失败 参数类型错误,或者参数长度超出限制 400
    21030 内部服务超时 稍后重试 503
    21050 live_activity event参数错误 event参数必须为“start”,“update”、"end" 400
    21051 live_activity audience参数错误 实时活动创建时,推送目标只能是广播或者reg推送 400
    21052 live_activity attributes-type参数错误 event=start时,attributes-type不允许为空 400
    21053 live_activity content-state参数错误 content-state不允许为空 400
    21054 live_activity 参数错误,不允许同时通知和自定义消息 voip、message、notificatioin、live_activity不能并存 400
    21055 live_activity ios非p8证书 实时活动仅支持p8证书 400
    21056 live_activity 仅支持ios平台 platform参数必须是ios 400
    21057 voip 消息不允许和其他消息类型并存 voip、message、notificatioin、live_activity不能并存 400
    21058 voip 仅支持ios平台 platform参数必须是ios 400
    21059 参数错误 该消息类型不支持 big_push_duration 401
    23006 参数错误 定速推送 big_push_duration 超过最大值 1440 400
    23008 接口限速 单应用推送接口 qps 达到上限(500 qps) 400
    23009 推送权限错误 当前推送ip地址不在应用ip白名单内 400
    27000 系统内存错误 请重试 500
    27001 参数错误 校验信息为空 401
    27008 参数错误 third_party_channel 里面的 distribution 不为空,但是 notification 的 alert 内容为空 401
    27009 参数错误 third_party_channel 中 distribution 格式无效或为空 401
    21038 推送权限错误 VIP已过期或未开通 401
    21306 参数错误 通知消息和自定义消息不能同时推送 401

    推送限制

    厂商通道 标题长度 内容长度 敏感词 其他说明
    Engagelab 通道 不限制,但限制消息体总大小 不限制,但限制消息体总大小 根据敏感词功能所配置的词 MTPush 中 Notification/Message 长度限制为 4000 个字节。
    华为通道 不限制,但消息体总大小 < 4096 字节,建议标题≤ 40 个字符 不限制,但消息体总大小 < 4096 字节,建议内容≤ 1024 个字符 禁止携带政府,领导人名称、台独等相关内容 默认【营销通知】的权限为静默通知,静默推送没有声音、震动等提示。
    荣耀通道 不限制,但消息体总大小<4096字节 不限制,但消息体总大小 < 4096 字节 禁止携带政府,领导人名称、台独等相关内容 -
    魅族通道 ≤ 32 个字符 ≤ 100 个字符 禁止特殊字符,如:#
  • 中英文字符均计算为 1 个字符。
  • 部分消息可能会存入魅族手机右上角【魅族消息盒子】中。
  • 小米通道 ≤ 50 个字符 ≤ 128 个字符 禁止特殊字符,如:#、>>
  • 中英文字符均计算为 1 个字符。emoji视为两个字符。
  • 部分消息可能会存在通知栏的不重要通知里。
  • OPPO 通道 ≤ 50 个字符 内容长度按通知样式限制: 1)标准样式(style=1):内容字符串长度限制 ≤ 50;2)长文本样式(style=2):内容字符串长度限制 ≤ 128;3)大图样式(style=3):内容字符串长度限制 ≤ 50。 根据敏感词功能所配置的词 字符串长度计算说明:中英文字符及特殊符号(如 emoji)均视作 1 个字符计算。
    vivo 通道 ≤ 40 个字符 ≤ 100 个字符
  • 禁止特殊字符,如:#、>>
  • 正式消息禁止:纯数字、纯英文、纯符号、符号加数字,测试、test、大括号、中括号等
  • 中英文均视为1个字符。
  • 默认关闭通知权限。
  • 同设备 1 天内运营消息的推送条数不能超过 5 条。
  • 同设备 1 天内不能重复推送内容相同的运营消息。
  • APNS 通道 ≤ 20 个字符(40 个英文字符),超过部分会显示省略号。
  • 通知中心和锁屏状态最多显示 110 个字符,55 个汉字。
  • 顶部弹窗最多显示 62 个字符,31 个汉字,超过部分会显示省略号。
  • 根据敏感词功能所配置的词 消息体长度大小限制为 4 KB(4096 字节)。VoIP通知的最大大小为 5 KB(5120 字节)。
    FCM 通道 不限制,但限制消息体总大小 不限制,但限制消息体总大小 根据敏感词功能所配置的词 MTPush 中 Notification/Message 长度限制为 4000 个字节。
    Harmony 通道 不限制,但限制消息体总大小 不限制,但限制消息体总大小 根据敏感词功能所配置的词 消息体最大不能超过4096Bytes(不包括Push Token)。

    多语言码

    语言名称 语言代码
    英语 en
    阿拉伯语 ar
    中文(简体) zh-Hans
    中文(繁体) zh-Hant
    捷克语 cs
    丹麦语 da
    荷兰语 nl
    法语 fr
    德语 de
    印地语 hi
    意大利语 it
    日语 ja
    韩语 ko
    马来语 ms
    俄语 ru
    西班牙语 es
    泰语 th
    越南语 vi
    印度尼西亚语 id
    挪威语 no
    瑞典语 sv
    波兰语 pl
    土耳其语 tr
    希伯来语 he
    葡萄牙语 pt
    罗马尼亚语 ro
    匈牙利语 hu
    芬兰语 fi
    希腊语 el
    乌克兰语 uk
    老挝语 lo
    葡萄牙语(葡萄牙) pt_PT
    葡萄牙语(巴西) pt_BR
    西班牙语(阿根廷) es_AR
    西班牙语(西班牙) es_ES
    西班牙语(拉丁美洲) es_419
    Icon Solid Transparent White Qiyu
    联系销售