3.8 KiB
3.8 KiB
通讯与服务类消息发送说明
概述
本文档说明如何使用本后台服务发送通讯与服务(原私信)类消息。
根据 OPPO推送服务官方文档,通讯与服务类消息需要特殊的参数配置。
关键配置参数
1. 频道ID(channel_id)
- 值:
previte_message - 位置:
src/main/resources/application.properties - 配置项:
oppo.push.channel.id.im=previte_message
2. 频道名称(channel_name)
- 值:
消息推送 - 位置:
src/main/resources/application.properties - 配置项:
oppo.push.channel.name.im=消息推送
代码实现
在 OppoPushService.java 中,发送消息时会自动设置以下参数:
// 通讯与服务(原私信)类消息特殊参数
notification.put("channel_id", config.getChannelIdIm()); // previte_message
notification.put("channel_name", config.getChannelNameIm()); // 消息推送
// extra参数(可选)
Map<String, Object> extra = new HashMap<>();
extra.put("message_type", "chat"); // 标识为私信类消息
notification.put("extra", extra);
消息体结构
发送通讯与服务类消息时,完整的消息体结构如下:
{
"target_type": 1,
"target_value": "设备的registration_id",
"notification": {
"title": "消息标题",
"content": "消息内容",
"click_action_type": 1,
"click_action_type_value": "",
"channel_id": "previte_message",
"channel_name": "消息推送",
"extra": {
"message_type": "chat"
}
}
}
测试步骤
1. 确保配置正确
检查 application.properties 文件:
oppo.push.channel.id.im=previte_message
oppo.push.channel.name.im=消息推送
2. 启动服务
mvn spring-boot:run
3. 发送测试消息
使用 curl 命令:
curl -X POST http://localhost:8080/api/push/send \
-H "Content-Type: application/json" \
-d '{
"targetValue": "您的registration_id",
"title": "测试私信",
"content": "这是一条通讯与服务类消息",
"messageType": "1"
}'
4. 验证结果
- 检查API返回:
success应为true - 检查设备:消息应出现在OPPO手机的"消息推送"频道中
- 检查日志:查看控制台输出的详细日志
注意事项
-
频道ID必须正确:
channel_id必须设置为previte_message,否则消息不会被识别为普通通知 -
频道名称:
channel_name设置为消息推送,这是OPPO系统识别的标准名称 -
设备端配置:确保移动应用已正确集成OPPO推送SDK,并且应用已获得通知权限
-
registration_id:必须使用真实的设备registration_id,不能随意填写
-
消息分类:通过设置
channel_id为previte_message,消息会被OPPO系统自动分类为"通讯与服务"类消息
常见问题
Q1: 消息发送成功但设备收不到?
A: 检查以下几点:
- 设备是否在线
- 应用是否已获得通知权限
- registration_id是否正确
- 应用是否已正确集成OPPO推送SDK
Q2: 消息收到了但不是通讯与服务类?
A: 检查:
channel_id是否正确设置为previte_message- 查看日志确认消息体中的参数是否正确
Q3: 如何确认消息类型?
A:
- 在OPPO手机上,通讯与服务类消息会显示在"消息推送"频道中
- 可以通过OPPO开放平台的推送统计查看消息分类
相关文档
技术支持
如有问题,请:
- 查看控制台日志获取详细错误信息
- 检查OPPO开放平台的推送统计
- 参考OPPO官方文档