回调通知
接口说明:打开或关闭文件时,WPS 会回调一些通知,目前有 7 类回调通知(详情查看下文的请求示例)。
请求说明
| 请求地址 | 回调地址 + uri(默认为:/v1/3rd/onnotify) |
|---|---|
| 请求方法 | POST |
| 签名方式 | 无 |
请求头(Header)
| 名称 | 是否必填 | 说明 |
|---|---|---|
| Content-Type | 是 | 固定为: application/json |
| X-Weboffice-File-Id | 是 | 文件id |
| X-Wps-Weboffice-Token | 否 | 开发者通过JSSDK设置用于用户鉴权TOKEN |
查询参数(Query)
| 名称 | 参数类型 | 是否必填 | 说明 |
|---|---|---|---|
| _w_third_* | object | 否 | 合作方自定义参数, _w_third_作为前缀,_w_third_appid,_w_third_file_id 字段已被使用,对接方请合理避开 |
请求体(Body)
| 名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| cmd | string | 否 | 命令参数,可选值: OnlineFileCountCmd:文档打开文件总数的回调命令 OperateRecordExport:打印或导出操作命令 OpenPageCmd:当用户调用WebSocket的session 接口获取token的时候会调用,即 CreateSession 接口调用 UserJoin:当用户进行 WebSocket 连接建立之后,发送 session.open 的时候 UserQuit:在关闭在线编辑协作页面的时候会调用通知用户退出 CommentAdd:>=v6.1.2301.20230116在新增评论的时候会调用通知用户 |
| body | object | 否 | 信息内容 |
| ∟ file_id | string | 否 | 文件ID |
| ∟ filesize | integer | 否 | 文件大小,单位字节 (B) |
| ∟ filetype | string | 否 | 文件类型,有四种,分别是 "s"(表格)、"w"(文字)、"p"(演示)、"f"(pdf) |
| ∟ userid | string | 否 | 用户 id |
| ∟ permission | string | 否 | 用户权限,编辑或预览 |
| ∟ counts | integer | 否 | 当前文档并发数 |
| ∟ maxcounts | integer | 否 | 最大文档并发数(套餐限制) |
| ∟ active | integer | 否 | 用户链接占用时长,单位秒 (S) |
| ∟ result | string | 否 | 打开结果 |
| ∟ detail | string | 否 | 详细信息 |
| ∟ operated_time | string | 否 | 回调时系统时间 |
| ∟ comment_id | string | 否 | 评论id |
| ∟ format | string | 否 | 导出格式 |
| boolean | 否 | 是否是打印,true为打印,false为导出 | |
| ∟ file_name | string | 否 | 文件名 |
| ∟ download_url | string | 否 | 导出产物链接 |
| ∟ md5 | string | 否 | MD5值 |
| ∟ is_reply | string | 否 | 是否是回复评论,可传true和false |
| ∟ notify_ids | string | 否 | 需要通知用户的ID,json字符串需解析成字符串数组后使用 |
| ∟ selection_id | string | 否 | 选取ID,目前仅轻文档和多维表格有该属性 |
| ∟ text | string | 否 | 评论文本,如果为@人请求时需会携带@人的信息 |
请求体示例
html
// 企业已经打开文件总数,仅打开一个未打开的文件时调用,某些错误会导致不触发打开文件总数的回调通知
{
"cmd": "OnlineFileCountCmd",
"body": {
"file_id": "id", // 文件id,字符串长度不超过64位
"userid": "032026", // 用户 Id
"counts": 13, // 当前文档并发数
"maxcounts": 20, // 最大文档并发数(套餐限制)
"operated_time": "1597127230" // 回调时系统时间
}
}
// 每次对文件进行打印或导出操作时调用
{
"cmd": "OperateRecordExport",
"body": {
"file_id": "685540", // 文件id,字符串长度不超过64位
"format": "xlsx", // 导出格式
"print": false, // 是否是打印,true为打印,false为导出
"file_name": "test.xlsx", // 文件名
"userid": "12345", // 用户id
"operated_time": "1597127230", // 回调时系统时间
"download_url": "xxx", // 导出产物链接
"md5": "xxx" // MD5值
}
}
// 用户打开新页面时调用
{
"cmd": OpenPageCmd,
"body": {
"result": ErrorCode, // 打开结果
"detail": ErrorDetail // 详细信息
}
}
// 用户关闭页面时调用
{
"cmd": "UserQuit",
"body": {
"active": "20", // 用户链接占用时长,单位秒 (S)
"file_id": "685540", // 文件id,字符串长度不超过64位
"filesize": "894", // 文件大小,单位字节 (B)
"filetype": "s", // 文件类型,有四种,分别是 "s"(表格)、"w"(文字)、"p"(演示)、"f"(pdf)
"operated_time": "1597127230", // 回调时系统时间
"permission": "write", // 用户权限,编辑或预览
"userid": "53226" // 用户 id
}
}
// 用户打开新页面时调用
{
"cmd": "UserJoin",
"body": {
"permission": "write", // 用户权限,编辑或预览
"userid": "59-322032026", // 用户 id
"operated_time": "1597127230", // 回调时系统时间
}
}
//当文档从无变化到有变化的时候,会推送该消息
//文档状态改变时才会推送,举例以下推送几种情况
//用户首次打开文档并编辑,会推送一次
//当用户保存文档成功后继续编辑才会推送(从保存状态变为改动状态)
{
"cmd": "FileDirty",
"body": {},
}
//当文档从有改动状态变为已保存状态时,会推送该消息。通常为调用保存成功之后推送
{
"cmd": "FileClear",
"body": {},
}
当文档新增评论时,会推送该消息。
{
"cmd": "CommentAdd",
"body": {
"comment_id": "1720089402",
"file_id": "269516015960064",
"is_reply": "true",
"notify_ids": "[\"47\"]",
"operated_time": "1726711866",
"selection_id": "",
"text": "aaaaaaa@F", // 这里的F就是被@人的用户名称
"user_id": "47"
}
}响应体(Response)
正常返回
200 OK