OPPO推送服务端设置广播推送

OPPO推送服务端设置广播推送

广播推送

OPPO PUSH提供广播和单点推送两种下发消息的方式。以下是这两种推送方式的介绍及具体的API使用方式。

广播推送

广播推送主要用于向大批量用户推送同一条消息的场景,例如标签推送、大批量的注册ID推送等。一般情况下,广播消息会在同一时间向这批目标设备推送消息,如果设置了定速推送,则按照给定的速度均匀向圈定的目标推送消息。
使用广播推送,需要先在OPPO PUSH保存一条广播消息体,再通过创建好的消息体对应的消息ID,调用OPPO PUSH的广播推送接口推送该条消息。

保存通知栏消息内容体

接口详情

描述内容
接口功能保存消息内容体,获取消息Id
请求方法POST
请求编码UTF-8
Content-Typeapplication/x-www-form-urlencoded
请求路径/server/v1/message/notification/save_message_content

请求参数

除了共有的鉴权参数外,消息体内容的参数均以key-value的形式填写在HTTP请求的body中。

名称类型必须描述
auth_tokenstring鉴权令牌,详见鉴权一章。

消息体内容参数:参数主要围绕消息体的具体内容,以及推送的方式,消息体内容参数设置详情可查看通知栏消息

响应参数

调用接口后,OPPO PUSH会响应JSON格式的字符串,包含以下字段:

名称类型必须描述
codeInt返回码,具体含义请参考调用地址,公共参数和返回码一章。
messageString响应信息描述
dataStringJSON格式的响应返回值,成功调用将包含消息ID,后续需要使用消息ID来进行广播消息推送。

响应示例

{
    "code": 0,
    "message": "success",
    "data": {
        "message_id": "58ad47319e8d725350a5afd5" //消息ID
      }
}

调用广播推送

接口详情

描述内容
接口功能发送通知栏消息
请求方法POST
Content-Typeapplication/x-www-form-urlencoded
请求编码UTF-8
请求路径/server/v1/message/notification/broadcast

请求参数

名称类型必须默认描述
auth_tokenstring鉴权令牌,详见鉴权一章。
message_idString消息ID。
消息ID是调用保存消息体接口成功后响应的唯一标识。
广播通知栏消息ID的格式为AppID-1-3-ObjectID,如ZngnvJIM7wQusNtbqYnpH6XX-1-3-622ea78f923805b1389e61c2,其中ZngnvJIM7wQusNtbqYnpH6XX是某个业务的AppID,622ea78f923805b1389e61c2是这条消息在Push的唯一ID。
target_typeShort目标类型。
接受一个short类型数字,目前推送目标可指定以下几种:
2:表示推送目标为注册ID类型,
5:表示推送目标为别名类型,
6:表示推送目标按照标签对应的用户群圈定;
target_valueString具体的推送目标用户信息,根据推送目标类型有不同的传入方式:
1.注册ID类型或别名类型的推送。这两种类型一次调用可传入最多1000个目标,目标之间以英文字符 ; 为分隔符。如传入注册ID目标列表,字符串可表示为 “RegID1;RegID2;RegID3”, 或者别名名单 “Alias1;Alias2;Alias3” 。

标签:
2.标签推送。标签推送的目标值使用标签表达式。
标签表达式由一个或多个指令组合而成,一个指令包括组合字段和标签名单,表示若干个标签的组合搭配。
假设有一个标签表达式,标签表达式的配置和计算规则如下:
{ “or” : [ “tagID1”, ” tagID2″ ], “and” : [ “tagID3”, “tagID4”], “not” : [ “tagID5”, “tagID6”] }
表达式逻辑计算如下:
计算 “or” 字段的结果,得到tagID1和tagID2的并集A;计算 “and” 字段的结果 tagID3和tagID4的交集B;
计算 “not” 字段的结果 (tagID5和tagID6的并集C’)的非集=C最后计算所有A和B和C的交集。
最终结果为 (tagID1 ∪ tagID2)∩(tagID3 ∩ tagID4)∩(¬(tagID5 ∩ tagID6))

响应参数(JSON)

名称类型必须描述
codeInt返回码,具体含义请参考调用地址,公共参数和返回码一章
messageString响应信息描述
dataStringJSON格式的响应返回值,成功调用将包含消息ID和任务ID。

推送请求调用成功响应示例

{
    code:0,
    message: "success",
    data : {
        message_id : xxxxxxxxx // 消息Id
        task_id : xxxxxxxxx // taskId
    }
}

如果推送目标存在问题,会根据对应异常的目标进行响应,示例如下:

{
    code:0,
    message: "",
    data : {
        message_id : xxxxxxxxx, // 消息ID
        task_id:XXXXXXXXXX,     //推送任务ID
        // 部分目标有异常,将以 错误码——对应目标名单的形式返回
        "10000": [
            "J0476035d625e6c64567f71487e040e7d017f0558675b",
            "J0476045d625e6c64567f71487e040e7d017f0558675b",
            "J0476035d625e6sd64567f71487e040e7d017f0558675b"
        ]
   }
}

返回码(code)

Code英文描述中文描述
10000Invalid Registration_idregistration_id格式不正确

oppo推送受限说明

oppo推送受限说明

送达率说明

推送服务致力于提供安全可靠的消息发送通道,保障消息成功送达。此外,以下非通道因素也直接影响消息的送达情况,主要影响因素有:
1)终端设备是否在线
如果设备离线,PUSH平台会缓存消息,待用户上线后,再次将消息投递给用户。PUSH平台只缓存一次用户的消息,如果用户在线后还发不通,PUSH平台不再缓存。
2)用户手机上集成PUSH SDK的应用是否被卸载
3)网络状况是否稳定
4)终端手机的安全控制策略

支持的终端设备

目前支持 ColorOS3.1及以上的系统的OPPO的机型,一加5/5t及以上机型,realme所有机型。

推送消息的及时性

OPPO PUSH尽可能保障消息及时送达,设备网络条件良好且不拥堵情况下时延在1s内,该时延时间仅指PUSH通道推送消息的时延。开发者在运营管理网站的控制台创建基于RegID的推送任务和通过API创建的基于标签等的推送任务,PUSH系统将先进行推送任务的调度,再通过PUSH通道推送消息。

推送消息大小要求

PUSH消息支持的Android App包名称最大为128个字节,消息内容最大支持为4K字节。

支持的地区

除中国以外,还支持印度、印尼、泰国、越南、菲律宾、马来西亚。(海外应用请进入海外开放平台申请

推送数量限制规则

/累计用户数可推送总数量(条/日)
公信可推送数<50000100000
≥50000累计用户数*2
私信可推送数不限量
测试推送数1000(仅供接入测试使用)

1)目前私信处于公测阶段,需要申请才能开启私信通道,私信申请请参考【推送私信通道申请】
2)累计用户数是指从接入推送服务的app客户端,用户安装并激活的累计用户量,去除已卸载用户数;
3)累计用户数在OPPO推送运营平台可查询,每天会刷新。

接收数量限制

通过OPPO推送平台下发的消息(包含公私信),单用户接收上限2000条/日。

QPS限制规则说明

限制规则

OPPO推送对QPS的分配主要依据应用的累计用户数,应用类别权重和平台推送系数三个值进行加权计算,其中累计用户数在OPUSH平台上的查询路径是OPPO PUSH推送运营平台—我要推送消息—应用列表中的累计用户数。

计算公式

应用QPS = 推送QPS参考值 * 应用类别权重 * 平台推送系数
例如:针对应用维度,30000 QPS表示1秒内本应用最多可推送给30000个用户(所有接口共享应用维度限速上限总值)。

QPS超限时会返回什么错误吗?

QPS超限时会返回错误码 55, 原因:APP Call Frequency Limit

返回错误如何处理

请降低您的并发请求数,确保每秒的请求数不高于QPS限制,业务应当设置规则优先发送重要的消息,非热点或时效性要求低消息需按照规定qps以下进行推送。
具体的QPS对应值如下:

序号累计用户数推送QPS参考值应用类别权重平台推送系数(默认 = 1)
1≥10000万3000011
2≥5000万且<10000万2000011
3≥1000万且<5000万1000011
4<1000万500011

备注:QPS(Quantity per second)表示1秒可调用OPPO PUSH的请求数。