commit 4d40a14a51b0b7020a1efdc090cd628d956104c2 Author: renjianbo <18691577328@qq.com> Date: Mon Dec 29 15:20:00 2025 +0800 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..c3b7b92 --- /dev/null +++ b/README.md @@ -0,0 +1,149 @@ +# OPPO推送服务测试后台 + +这是一个用于测试OPPO推送服务,特别是"通讯与服务(原私信)"类消息的后台服务。 + +## 功能特性 + +- ✅ 获取OPPO推送服务的Access Token +- ✅ 发送单点推送消息 +- ✅ 支持发送通讯与服务(原私信)类消息 +- ✅ 提供RESTful API接口,方便测试和调试 + +## 环境要求 + +- JDK 1.8+ +- Maven 3.6+ + +## 配置说明 + +✅ **配置已完成** - 已在 `src/main/resources/application.properties` 中配置: + +```properties +oppo.push.appKey=bb0819c889ae40cd8bde5a8ad4e670fe +oppo.push.appSecret=9b5a0e6d560e406dbb70fbb4e0e38098 +oppo.push.channel.id.im=previte_message +oppo.push.channel.name.im=消息推送 +``` + +**注意**:如果您的 MasterSecret 与 AppSecret 不同,请更新配置文件中的 `oppo.push.masterSecret` 值。 + +## 运行方式 + +### 方式一:使用Maven运行 + +```bash +mvn spring-boot:run +``` + +### 方式二:打包后运行 + +```bash +# 打包 +mvn clean package + +# 运行 +java -jar target/oppo-push-server-1.0.0.jar +``` + +## API接口 + +### 1. 健康检查 + +``` +GET http://localhost:8080/api/push/health +``` + +### 2. 获取Access Token + +``` +GET http://localhost:8080/api/push/token +``` + +### 3. 发送通讯与服务(原私信)类消息 + +``` +POST http://localhost:8080/api/push/send +Content-Type: application/json + +{ + "targetValue": "registration_id或alias", + "title": "消息标题", + "content": "消息内容", + "messageType": "1" +} +``` + +**参数说明:** +- `targetValue`: 目标值,可以是registration_id、alias或tag +- `title`: 消息标题 +- `content`: 消息内容 +- `messageType`: 消息类型(1:通知栏消息, 2:透传消息),默认为1 + +## 快速测试 + +### 1. 启动服务 + +```bash +mvn spring-boot:run +``` + +### 2. 使用curl测试 + +```bash +# 1. 健康检查 +curl http://localhost:8080/api/push/health + +# 2. 获取Token(测试认证是否成功) +curl http://localhost:8080/api/push/token + +# 3. 发送通讯与服务(原私信)类消息 +curl -X POST http://localhost:8080/api/push/send \ + -H "Content-Type: application/json" \ + -d @test-request.json +``` + +**注意**:发送消息前,请先修改 `test-request.json` 文件中的 `targetValue` 为实际的 registration_id。 + +### 使用Postman测试 + +1. 创建新的POST请求 +2. URL: `http://localhost:8080/api/push/send` +3. Headers: `Content-Type: application/json` +4. Body (raw JSON): +```json +{ + "targetValue": "your_registration_id", + "title": "测试标题", + "content": "这是一条测试消息", + "messageType": "1" +} +``` + +## 通讯与服务(原私信)类消息说明 + +根据OPPO推送服务文档,通讯与服务类消息需要设置特殊的参数: + +- `message_type`: 设置为 "chat" 标识为私信类消息 +- `channel_id`: 私信频道ID,已配置为 `previte_message` +- `channel_name`: 频道名称,已配置为 `消息推送` + +这些参数已经在 `OppoPushService` 中自动设置,使用配置文件中定义的频道ID和名称。 + +## 相关文档 + +- [OPPO推送服务文档](https://open.oppomobile.com/documentation/page/info?id=11233) +- [OPPO开放平台](https://open.oppomobile.com) + +## 注意事项 + +1. 确保在OPPO开放平台已开通推送服务 +2. 确保AppKey、AppSecret和MasterSecret配置正确 +3. 确保目标设备的registration_id或alias有效 +4. Access Token会自动缓存,有效期约24小时 + +## 故障排查 + +1. **获取Token失败**:检查AppKey和MasterSecret是否正确 +2. **发送消息失败**:检查targetValue是否有效,以及网络连接是否正常 +3. **消息未收到**:检查设备是否在线,以及应用是否已正确集成OPPO推送SDK +