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}
axios({
url:"/group/myGroupId/user/myUserId/notification/type/1"
})
- URL参数
例如:/group?&groupId=myGroupId&userId=myUserId&type=1
axios({
url:"/group",
params: {
groupId: myGroupId,
userId: myUserId,
type: 1
}
})
- Body参数
例如:/group
axios({
url:"/group",
data: {
groupId: myGroupId,
userId: userId,
type: 1
}
})
消息 #
推送消息成功,在应答data中可取得msgId
- pushToken推送
POST /message/pushToken
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | UMessage | Body | 是 |
pushToken | String | Body | 是 |
- 多pushToken推送
POST /message/multi/pushToken
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | UMessage | Body | 是 |
pushTokens | String[] | Body | 是 |
- pushToken消息撤回
POST /message/revoke/pushToken
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | URevokeMessage | Body | 是 |
pushToken | String | Body | 是 |
- 多pushToken消息撤回
POST /message/revoke/multi/pushToken
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | URevokeMessage | Body | 是 |
pushTokens | String[] | Body | 是 |
- 用户推送
POST /message/user
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
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其他平台设备
推送群消息时排除掉发送设备
全体推送消息时排除掉发送设备
- 多用户推送
POST /message/multi/user
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | UMessage | Body | 是 |
userIds | String[] | Body | 是 |
packageName | String | URL | 否 |
fromToken | String | URL | 否 |
- 用户消息撤回
POST /message/revoke/user
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | URevokeMessage | Body | 是 |
userId | String | Body | 是 |
packageName | String | URL | 否 |
fromToken | String | URL | 否 |
- 多用户消息撤回
POST /message/revoke/multi/user
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | URevokeMessage | Body | 是 |
userIds | String[] | Body | 是 |
packageName | String | URL | 否 |
fromToken | String | URL | 否 |
- 群组推送 - 说明
POST /message/group
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | UMessageGroup | Body | 是 |
groupId | String | Body | 是 |
packageName | String | URL | 否 |
fromToken | String | URL | 否 |
- 群组消息撤回
POST /message/revoke/group
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | URevokeMessage | Body | 是 |
groupId | String | Body | 是 |
packageName | String | URL | 否 |
fromToken | String | URL | 否 |
- 全体推送
POST /message/all
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | UMessage | Body | 是 |
packageName | String | URL | 否 |
fromToken | String | URL | 否 |
- 广播推送,即只对在线设备推送
POST /message/broadcast
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
message | UMessage | Body | 是 |
packageName | String | URL | 否 |
fromToken | String | URL | 否 |
- 延迟消息撤回
POST /message/revoke/delay
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
msgId | String | Body | 是 |
群组/订阅 #
建议使用用户订阅
- pushToken订阅群组
POST /group/pushToken/subscribe
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | Body | 是 |
pushToken | String | Body | 是 |
- 多pushToken订阅群组
POST /group/multi/pushToken/subscribe
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | Body | 是 |
pushTokens | String[] | Body | 是 |
- pushToken订阅多群组
POST /group/pushToken/subscribe/multi
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupIds | String[] | Body | 是 |
pushToken | String | Body | 是 |
- pushToken取消订阅群组
POST /group/pushToken/unsubscribe
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | Body | 是 |
pushToken | String | Body | 是 |
- 多pushToken取消订阅群组
POST /group/multi/pushToken/unsubscribe
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | Body | 是 |
pushTokens | String[] | Body | 是 |
- 用户订阅群组
POST /group/user/subscribe
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | Body | 是 |
userId | String | Body | 是 |
- 多用户订阅群组
POST /group/multi/user/subscribe
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | Body | 是 |
userIds | String[] | Body | 是 |
- 用户取消订阅群组
POST /group/user/unsubscribe
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | Body | 是 |
userId | String | Body | 是 |
- 多用户取消订阅群组
POST /group/multi/user/unsubscribe
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | Body | 是 |
userIds | String[] | Body | 是 |
- 删除订阅项,删除后并不会影响群离线消息
DELETE /group/{groupId}
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | 路径 | 是 |
- 设置群组消息画面
POST /group/portrait
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | Body | 是 |
name | String | Body | 否,为空表示删除 |
avatar | String | Body | 否,为空表示删除 |
- 设置推送设备在接收群组消息时的通知类型
POST /group/{groupId}/pushToken/{pushToken}/notification/type/{notifyType}
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | 路径 | 是 |
pushToken | String | 路径 | 是 |
notifyType | Integer | 路径 | 是 |
- 设置用户在接收群组消息时的通知类型
POST /group/{groupId}/user/{userId}/notification/type/{notifyType}
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | 路径 | 是 |
userId | String | 路径 | 是 |
notifyType | Integer | 路径 | 是 |
- 设置用户在群组中的别名
POST /group/{groupId}/user/{userId}/alias/{alias}
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
groupId | String | 路径 | 是 |
userId | String | 路径 | 是 |
alias | String | 路径 | 是 |
用户 #
- 设置用户接收fromId消息的通知类型
POST /user/{userId}/from/{fromId}/notification/type/{notifyType}
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
userId | String | 路径 | 是 |
fromId | String | 路径 | 是 |
notifyType | Integer | 路径 | 是 |
- 设置用户接收fromId消息时显示fromId的别名
POST /user/{userId}/from/{fromId}/alias/{alias}
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
userId | String | 路径 | 是 |
fromId | String | 路径 | 是 |
alias | String | 路径 | 是 |
- 设置用户消息画像
POST /user/portrait
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
userId | String | Body | 是 |
name | String | Body | 否,为空表示删除 |
avatar | String | Body | 否,为空表示删除 |
PushToken #
- 设置推送设备的通知类型
POST /pushToken/{pushToken}/notification/type/{notifyType}
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
pushToken | String | 路径 | 是 |
notifyType | Integer | 路径 | 是 |
- 设备pushToken变更
仅用于业务系统自行维护推送设备与用户关系时
POST /pushToken/{previousToken}/to/{currentToken}
参数名 | 参数类型 | 参数位置 | 必需 |
---|---|---|---|
previousToken | String | 路径 | 是 |
currentToken | String | 路径 | 是 |
说明
- 如果业务系统完全不使用用户推送时,表示业务系统自行维护推送设备和用户的关系,业务系统发现pushToken变更时调用此方法,来保证之前pushToken的订阅能转移到新pushToken中,以及之前pushToken的离线消息会推送给新pushToken。建议业务系统整体上使用用户方式,用户推送,用户订阅,把这些复杂的关系维护交给UPush来完成。
- pushToken 相关接口是从版本1延续下来的,一方面是为了保证接口的完整性,另一方面在某些特殊场景依然需要对指定设备进行推送,如扫码登录,扫码支付等。