Skip to content

回调通知

接口说明:打开或关闭文件时,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)

名称类型是否必填说明
cmdstring命令参数,可选值: OnlineFileCountCmd:文档打开文件总数的回调命令 OperateRecordExport:打印或导出操作命令 OpenPageCmd:当用户调用WebSocket的session 接口获取token的时候会调用,即 CreateSession 接口调用 UserJoin:当用户进行 WebSocket 连接建立之后,发送 session.open 的时候 UserQuit:在关闭在线编辑协作页面的时候会调用通知用户退出 CommentAdd:>=v6.1.2301.20230116在新增评论的时候会调用通知用户
bodyobject信息内容
   file_idstring文件ID
   filesizeinteger文件大小,单位字节 (B)
   filetypestring文件类型,有四种,分别是 "s"(表格)、"w"(文字)、"p"(演示)、"f"(pdf)
   useridstring用户 id
   permissionstring用户权限,编辑或预览
   countsinteger当前文档并发数
   maxcountsinteger最大文档并发数(套餐限制)
   activeinteger用户链接占用时长,单位秒 (S)
   resultstring打开结果
   detailstring详细信息
   operated_timestring回调时系统时间
   comment_idstring评论id
   formatstring导出格式
   printboolean是否是打印,true为打印,false为导出
   file_namestring文件名
   download_urlstring导出产物链接
   md5stringMD5值
   is_replystring是否是回复评论,可传truefalse
   notify_idsstring需要通知用户的ID,json字符串需解析成字符串数组后使用
   selection_idstring选取ID,目前仅轻文档和多维表格有该属性
   textstring评论文本,如果为@人请求时需会携带@人的信息

请求体示例

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