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延续下来的,一方面是为了保证接口的完整性,另一方面在某些特殊场景依然需要对指定设备进行推送,如扫码登录,扫码支付等。

上次更新: 7/19/2022, 3:50:51 PM