3.0 KiB
3.0 KiB
OPPO推送 - 通讯与服务类消息配置说明
问题描述
当前推送的消息是"内容与运营"类型,只有声音提醒,灭屏时没有强提醒。 需要发送"通讯与服务"类型的消息,实现:
- 离线消息强提醒
- 通知栏、锁屏、铃声、振动
解决方案
OPPO SDK 的 Notification 类不支持设置通讯与服务类消息的关键参数,需要使用 HTTP API 直接发送。
需要设置的参数
- channel_id:
"previte_message"- 通讯与服务频道ID(必须) - channel_name:
"消息推送"- 频道名称(必须) - category:
"IM"- 消息类别,IM表示即时聊天、音频、视频通话(必须) - notify_level:
2- 通知级别,2表示通知栏、锁屏、铃声、振动(必须)
实现方式
由于 push_server-master 项目使用的是 OPPO SDK,而 SDK 的 Notification 类不支持这些参数,需要:
方案1: 修改为使用 HTTP API(推荐)
修改 OppoPush.java,添加使用 HTTP API 发送通讯与服务类消息的方法。
方案2: 通过 API 直接调用(临时方案)
不修改代码,直接通过 HTTP API 发送通讯与服务类消息。
直接使用 HTTP API 发送的示例
# 1. 先获取 auth_token
curl -X POST "https://api.push.oppomobile.com/server/v1/auth" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "app_key=bb0819c889ae40cd8bde5a8ad4e670fe×tamp=$(date +%s)000&sign=生成的签名"
# 2. 使用 auth_token 发送通讯与服务类消息
curl -X POST "https://api.push.oppomobile.com/server/v1/message/notification/unicast" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "message={\"target_type\":1,\"target_value\":\"OPPO_CN_95ac9afc103d70bb26441ec0cbb06b97\",\"notification\":{\"title\":\"知你\",\"content\":\"我是api\",\"channel_id\":\"previte_message\",\"channel_name\":\"消息推送\",\"category\":\"IM\",\"notify_level\":2,\"offLine\":true,\"offLineTtl\":86400,\"showTimeType\":0,\"networkType\":0}}&auth_token=你的auth_token"
注意事项
- 频道ID必须正确:
channel_id必须设置为"previte_message",这是 OPPO 系统识别的通讯与服务类消息标识 - 频道名称:
channel_name必须设置为"消息推送" - 通知级别:
notify_level设置为2才能实现通知栏、锁屏、铃声、振动的强提醒 - 类别:
category设置为"IM"表示即时聊天、音频、视频通话类消息 - 离线消息:
offLine设置为true,offLineTtl建议设置为86400(24小时)
验证方法
发送通讯与服务类消息后,应该:
- ✓ 在灭屏状态下有声音和振动提醒
- ✓ 在锁屏界面显示通知
- ✓ 在通知栏显示消息
- ✓ 消息被分类为"通讯与服务"类型
下一步
需要修改 push_server-master/src/main/java/cn/wildfirechat/push/android/oppo/OppoPush.java,添加使用 HTTP API 发送通讯与服务类消息的功能。