Files
push_server/通讯与服务类消息配置说明.md
2025-12-31 10:42:38 +08:00

3.0 KiB
Raw Permalink Blame History

OPPO推送 - 通讯与服务类消息配置说明

问题描述

当前推送的消息是"内容与运营"类型,只有声音提醒,灭屏时没有强提醒。 需要发送"通讯与服务"类型的消息,实现:

  • 离线消息强提醒
  • 通知栏、锁屏、铃声、振动

解决方案

OPPO SDK 的 Notification 类不支持设置通讯与服务类消息的关键参数,需要使用 HTTP API 直接发送。

需要设置的参数

  1. channel_id: "previte_message" - 通讯与服务频道ID必须
  2. channel_name: "消息推送" - 频道名称(必须)
  3. category: "IM" - 消息类别IM表示即时聊天、音频、视频通话必须
  4. 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&timestamp=$(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"

注意事项

  1. 频道ID必须正确: channel_id 必须设置为 "previte_message",这是 OPPO 系统识别的通讯与服务类消息标识
  2. 频道名称: channel_name 必须设置为 "消息推送"
  3. 通知级别: notify_level 设置为 2 才能实现通知栏、锁屏、铃声、振动的强提醒
  4. 类别: category 设置为 "IM" 表示即时聊天、音频、视频通话类消息
  5. 离线消息: offLine 设置为 trueoffLineTtl 建议设置为 8640024小时

验证方法

发送通讯与服务类消息后,应该:

  1. ✓ 在灭屏状态下有声音和振动提醒
  2. ✓ 在锁屏界面显示通知
  3. ✓ 在通知栏显示消息
  4. ✓ 消息被分类为"通讯与服务"类型

下一步

需要修改 push_server-master/src/main/java/cn/wildfirechat/push/android/oppo/OppoPush.java,添加使用 HTTP API 发送通讯与服务类消息的功能。