Rest API
Rest服务是基于Springboot的开源项目,相关内容请参照
说明与约定
- 默认前缀
/upush/rest/api/v2,也可行自行配置,下面每个请求的地址都需要拼接前缀 - 请求参数中自定义类型,在类定义中查询
- 请求的应答类型统一为UPushResponse
- 错误码参照
- Content-Type: application/json
- 鉴权,在请求头中添加,key:
Authorization,value:key=AppSecret,AppSecret的值在项目信息中查看 - 所有接口在Java SDK中都有参照
参数位置
- 路径参数
例如:/group/{groupId}/user/{userId}/notification/type/{notifyType}
- URL参数
例如:/group?&groupId=myGroupId&userId=myUserId&type=1
消息
推送消息成功,在应答data中可取得msgId
| 参数名 | 参数类型 | 参数位置 | 必需 |
| message | UMessage | Body | 是 |
| pushToken | String | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| message | UMessage | Body | 是 |
| pushTokens | String[] | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| message | URevokeMessage | Body | 是 |
| pushToken | String | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| message | URevokeMessage | Body | 是 |
| pushTokens | String[] | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| message | UMessage | Body | 是 |
| userId | String | Body | 是 |
| packageName | String | URL | 否 |
| fromToken | String | URL | 否 |
packageName 说明
推送目标存在多平台时,用包名来过滤不同平台的设备,包含或排除,向满足包名条件的平台设备推送。
举例1:给userId推送消息,userId绑定在不同的平台,比如手机,PC,不使用packageName参数,所有平台都能收到消息,但如果只想给PC推送,可以把packageName的值设置为PC平台的包名。通过packageName可以过滤接收消息的平台,在下面的其他请求中不再赘述。
举例2:给群组推送时,只向群成员中满足包名条件平台设备推送。
fromToken 说明
fromToken是发送设备的pushToken
对用户推送时,通过设置fromToken,可以把消息同步给fromId其他平台设备
推送群消息时排除掉发送设备
全体推送消息时排除掉发送设备
| 参数名 | 参数类型 | 参数位置 | 必需 |
| msgId | String | Body | 是 |
群组/订阅
建议使用用户订阅
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | Body | 是 |
| pushToken | String | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | Body | 是 |
| pushTokens | String[] | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupIds | String[] | Body | 是 |
| pushToken | String | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | Body | 是 |
| pushToken | String | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | Body | 是 |
| pushTokens | String[] | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | Body | 是 |
| userId | String | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | Body | 是 |
| userIds | String[] | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | Body | 是 |
| userId | String | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | Body | 是 |
| userIds | String[] | Body | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | 路径 | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | Body | 是 |
| name | String | Body | 否,为空表示删除 |
| avatar | String | Body | 否,为空表示删除 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | 路径 | 是 |
| pushToken | String | 路径 | 是 |
| notifyType | Integer | 路径 | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | 路径 | 是 |
| userId | String | 路径 | 是 |
| notifyType | Integer | 路径 | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| groupId | String | 路径 | 是 |
| userId | String | 路径 | 是 |
| alias | String | 路径 | 是 |
用户
| 参数名 | 参数类型 | 参数位置 | 必需 |
| userId | String | 路径 | 是 |
| fromId | String | 路径 | 是 |
| notifyType | Integer | 路径 | 是 |
- 设置用户接收fromId消息时显示fromId的别名
| 参数名 | 参数类型 | 参数位置 | 必需 |
| userId | String | 路径 | 是 |
| fromId | String | 路径 | 是 |
| alias | String | 路径 | 是 |
| 参数名 | 参数类型 | 参数位置 | 必需 |
| userId | String | Body | 是 |
| name | String | Body | 否,为空表示删除 |
| avatar | String | Body | 否,为空表示删除 |
PushToken
| 参数名 | 参数类型 | 参数位置 | 必需 |
| pushToken | String | 路径 | 是 |
| notifyType | Integer | 路径 | 是 |
- 设备pushToken变更
仅用于业务系统自行维护推送设备与用户关系时
| 参数名 | 参数类型 | 参数位置 | 必需 |
| previousToken | String | 路径 | 是 |
| currentToken | String | 路径 | 是 |
说明
- 如果业务系统完全不使用用户推送时,表示业务系统自行维护推送设备和用户的关系,业务系统发现pushToken变更时调用此方法,来保证之前pushToken的订阅能转移到新pushToken中,以及之前pushToken的离线消息会推送给新pushToken。建议业务系统整体上使用用户方式,用户推送,用户订阅,把这些复杂的关系维护交给UPush来完成。
- pushToken 相关接口是从版本1延续下来的,一方面是为了保证接口的完整性,另一方面在某些特殊场景依然需要对指定设备进行推送,如扫码登录,扫码支付等。