API
约定
请求网址:
- 请求网址中以
:
代表的是参数,实际请求时应替换为相应内容 - 以中括号
[]
包裹的参数为可选参数,实际请求时可省略 - 所有的请求网址均以
/
结束(有 GET 参数的则在/
后加上参数)
请求体:
- POST 参数可接收 application/json 和 application/x-www-form-urlencoded 类型的数据,但应在请求时的 Content-Type 进行明确说明
返回体:
- success:bool 类型,代表请求是否成功
- code:string 类型,"0" 代表请求成功,其他代表失败(失败的错误码不一定是数字)
- message: string 类型,请求失败时返回失败原因(原因可能随时更改,故请使用 code 来判断错误类型
- data:类型随具体接口而定,返回请求的结果或错误的详细信息
推送
发起推送
GET|POST /push/:pusher_id/[:content]/
参数:
- pusher_id, 必选 - Pusher ID
- content, 可选 - 参数中的
content
字段
GET 参数:可选 - 替换预设的推送参数
POST 参数:可选 - 替换预设的推送参数
content 参数
在 URL 中的 :content
部分是一个「快捷方式」,在 Preset 或 Group 中可以通过设定 redefine_content
配置来实现修改其代表的参数名(默认为 content
)。
例如对 {"title": "Foo", "content": "Bar"}
这组参数而言,默认 content 会覆盖 Bar
,而若将 redefine_content 定义为 title
则会覆盖 Foo
优先级
各类参数均支持自由覆盖,在相同参数多次出现时,遵从以下优先级
- POST 请求体中的参数
- URL 中的
:content
- 请求网址中的 GET 参数
- Preset 中的预定义参数
- Service 中的预定义参数
延时请求
可以通过添加 delay 或 at 参数实现在一定时间以后或一个特定时间发起推送。
delay
:设定延时,单位为秒,最多为 1 天(86400 秒)at
:设定运行时间,格式为YYMMDDhhmm
,最多延迟 7 天,默认时区为中国(GMT+8),可通过使用YYMMDDhhmm.UTC
格式来使用 UTC 时间
注意这里设定的时间是进入推送队列的时间,实际推送到达时间会依据队列中任务数量和推送的业务执行时间而有一定的延迟
取消推送
GET /revoke/task/:task_id/需要授权
参数:
- task_id, 必选 - Task ID,来自于请求 Push API 时的返回
限制条件:
- 只有发起任务的 Pusher 的所有者才有权取消
等待开发
权限限制模块还未实现,目前只要是知道 task_id 的用户就可以取消任务
局限性说明:
- Group 会产生多个推送任务,如需取消需对各任务分别取消
- 取消推送接口返回值只可能是成功,而无论实际任务是否存在、实际任务是否成功被取消
- 只有处于等待中的任务可以被取消,已经完成或开始运行的任务无法被取消
用户操作
生成邀请码
POST /account/invite/:type/
参数:
- type, 必选 - 可使用
auto
|referer
|admin
,默认为 auto
成功返回:
- quantity, Int - 生成的邀请码个数
- codes, Array(Object) - 生成的邀请码信息数组,每个数组成员如下
- code, String - 生成的邀请码
- available_times, Int - 生成的邀请码可用次数
- valid_to, Time - 生成的邀请码过期时间,null 代表永久有效
[type=auto] 自动生成邀请码
POST 参数:
- limit_email, 必选 - 限制邀请码必须被指定的邮箱使用
- recaptcha_response, 可选 - Google Recaptcha V3 验证结果
该接口只可能返回一个邀请码
当设定为开放注册时可以利用此接口为指定的邮箱生成邀请码,此接口必须传入 limit_email,邀请码将仅限此邮箱使用。
如后台设定开启了 Google Recaptcha,则需传入 recaptcha_response 参数用于进行真人验证
[type=referer] 通过邀请生成邀请码 需要授权
POST 参数:
- quantity, 可选 - 生成的邀请码个数,默认为 1
- limit_email, 可选 - 限制邀请码必须被指定的邮箱使用(设定此选项则 quantity 强制为 1)
此接口用于一个已经通过验证的用户邀请其他人使用
[type=admin] 管理员生成邀请码 需要授权 Admin
POST 参数:
- times, 可选 - 生成的邀请码可用次数,默认为 1(不能与 quantity 同时传入)
- quantity, 可选 - 生成的邀请码个数,默认为 1(不能与 times 同时传入)
- limit_email, 可选 - 限制邀请码必须被指定的邮箱使用(设定此选项则 quantity 与 times 强制为 1)
- valid_time, 可选 - 生成的邀请码有效期,单位为秒
- source, 可选 - 标记用户来源
利用邀请码创建用户
POST /account/user/create/
POST 参数:
- code, 必选 - 邀请码
- email, 必选 - 邮箱
- password, 可选 - 密码
[password] 为空的特殊情形
此设定是为了以后可以支持无密码登录使用的,但目前只能通过密码进行身份认证,故 password 实际上是必选。
激活用户
GET /account/user/confirm/:confirm_token/
参数:
- confirm_token, 必选 - 用户激活 Token
此接口用于激活用户,如果注册后 24h 内未激活则该用户及相关信息会被彻底删除
[confirm_token=force] 的特殊情形 需要授权 Admin
此接口用于给管理员以强制激活某用户使用
获取 Token (登录)
POST /account/user/login/
POST 参数
- email, 必选 - 用户注册邮箱
- password, 可选 - 密码
返回内容:
- isLogin, Bool - 是否登录成功
- isRegistered, Bool - 用户是否已注册
- token, String - 用户 Token(仅登录成功会返回)
[password] 为空的特殊情形
此设定是为了以后可以支持一键登录、第三方登录等使用的,但目前只有密码登录这一种方式,故 password 实际上是必选。
获取用户信息
列出 Pusher
获取 Service 列表
获取公开的 Preset 列表
获取自己的 Preset 列表
获取自己的 Group 列表
获取指定 Pusher 信息
获取指定 Service 信息
获取指定 Preset 信息
获取指定 Group 信息
新增 Pusher
新增 Preset
新增 Group
修改 Pusher
修改 Preset
Group 增加 Pusher
目前一个 Group 最多包括 5 个 Pusher
Group 修改 Pusher
Group 删除 Pusher
将自己的 Preset/Group 设置为公开(shared)
条件:
- base_pusher (Group 中所有 pusher 的 base_pusher) 必须为公开
- 自身不能为 protected
注意:一旦设置为公开后该 Pusher 不可被修改、不可被取消公开,如需删除需要联系管理员发工单申请