- API列表
- 目录
- 1. 用户会话的身份校验
- FAQ: 那接入方如何向WebOffice传入token?
- 1. 用户会话的身份校验
- 2. 获取文件元数据
- 3. 获取用户信息
- 4. 通知此文件目前有那些人正在协作
- 5. 上传文件新版本
- 6. 获取特定版本的文件信息
- 7. 文件重命名
- 8.获取所有历史版本文件信息
- 9. 新建文件
API列表
目录
1. 用户会话的身份校验
token是用来校验用户身份的凭证,它是用来限制文档只能由有权限的用户访问,以提高文档安全性。接入方可以取到头部参数x-wps-weboffice-token
来做接口鉴权。
x-wps-weboffice-token: your token
FAQ: 那接入方如何向WebOffice传入token?
方式一:可以通过jssdk的方式接入前端,通过jssdk的setToken接口设置token,具体细节可以看jssdk相关的接入文档。
url参数带上_w_tokentype=1(此参数同样需要签名)
`javascript wps = WPS.config({ wpsUrl: 'your signature url' // url参数带上</code>_w_tokentype=1
,通过jssdk方式传入token })
// 首次设置token和后续刷新token都是通过调用此APIwps.setToken({token: 'your token'})
**方式二:**
通过WebView注入`WPS_GetToken` 全局函数来传入token,weboffice前端如果检测到有window.WPS_GetToken函数, 会直接调用该函数获取token,注意需要return回来一个Object对象`{token: "your token"}`
```javascript
// 注入WPS_GetToken
function WPS_GetToken(){
return {token: "your token"}
}
2. 获取文件元数据
描述:
获取文件元数据,包括当前文件信息和当前用户信息。其中,当user的permission参数返回“write”时,进入在线编辑模式,返回“read”时进入预览模式。
API地址:
/v1/3rd/file/info
调用方法:
GET
请求头(由weboffice开放平台写入):
Header 值 描述 User-Agent wps-weboffice-openplatform 用户代理 x-wps-weboffice-token xxxxxxx 校验身份的token,值根据对接的企业而定 x-weboffice-file-id xxxxxxx 文件id
请求参数:
参数名 参数类型 数据类型 描述 可选 _w_signature query string 请求签名 否 _w_appid query string 应用id 否 (任意参数) query (任意类型) 按照需求传入参数 是
示例:
http://www.xxx.cn/v1/3rd/file/info?_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&_w_param1=1000&_w_param2=example.doc&_w_signature=tBnhFqvVrC1LcJKye1m7GjzvqoA%3D
返回值:
status code为200表示获取数据成功,返回下面的信息。其余值表示失败,需要在返回中指定code,msg等信息。
正确返回响应信息示例:
(其中user_acl和watermark为非必须返回参数,user_acl用于控制用户权限,不返回则为系统默认值,watermark只用于预览时添加第三方水印)
{
file: {
id: "132aa30a87064", //文件id,字符串长度小于40
name : "example.doc", //文件名
version: 1, //当前版本号,位数小于11
size: 200, //文件大小,单位为kb
creator: "id0", //创建者id,字符串长度小于40
create_time: 1136185445, //创建时间,时间戳,单位为秒
modifier: "id1000", //修改者id,字符串长度小于40
modify_time: 1551409818, //修改时间,时间戳,单位为秒
download_url: "http://www.xxx.cn/v1/file?fid=f132aa30a87064", //文档下载地址
user_acl: {
rename: 1, //重命名权限,1为打开该权限,0为关闭该权限,默认为0
history: 1 //历史版本权限,1为打开该权限,0为关闭该权限,默认为1
},
watermark: {
type: 1, //水印类型, 0为无水印; 1为文字水印
value: "禁止传阅", //文字水印的文字,当type为1时此字段必选
fillstyle: "rgba( 192, 192, 192, 0.6 )", //水印的透明度,非必选,有默认值
font: "bold 20px Serif", //水印的字体,非必选,有默认值
rotate: -0.7853982, //水印的旋转度,非必选,有默认值
horizontal: 50, //水印水平间距,非必选,有默认值
vertical: 100 //水印垂直间距,非必选,有默认值
}
},
user: {
id: "id1000", //用户id,长度小于40
name: "wps-1000", //用户名称
permission: "write", //用户操作权限,write:可编辑,read:预览
avatar_url: "http://xxx.cn/id=1000" //用户头像地址
}
}
3. 获取用户信息
描述:
批量获取当前正在编辑和编辑过文档的用户信息,以数组的形式返回响应。
API地址:
/v1/3rd/user/info
调用方法:
POST
请求头(由weboffice开放平台写入):
Header 值 描述 User-Agent wps-weboffice-openplatform 用户代理 x-wps-weboffice-token xxxxxxx 校验身份的token,值根据对接的企业而定 x-weboffice-file-id xxxxxxx 文件id
请求参数示例:
参数名 参数类型 数据类型 描述 可选 _w_signature query string 请求签名 否 _w_appid query string 应用id 否 (任意参数) query (任意类型) 按照需求传入参数 是 ids body string[] 用户id数组 否
示例:
http://www.xxx.cn/v1/3rd/user/info?_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&_w_param1=1000&_w_param1=example.doc&_w_signature=tBnhFqvVrC1LcJKye1m7GjzvqoA%3D
POST请求示例:
{
ids:["id1000", "id2000"]
}
返回值:
status code为200表示获取数据成功,返回下面的信息。其余值表示失败,需要在返回中指定code,msg等信息。
正确返回响应信息示例:
{
"users":[
{
id: "id1000", //用户ID,字符串长度小于40
name: "wps-1000", //用户名
avatar_url: "http://xxx.cn/?id=1000" //用户头像
},
{
id: "id2000", //用户ID,字符串长度小于40
name: "wps-2000", //用户名
avatar_url: "http://xxx.cn/?id=2000" //用户头像
}
]
}
4. 通知此文件目前有那些人正在协作
描述:
当有用户加入或者退出协作的时候 ,上传当前文档协作者的用户信息,可以用作上下线通知。此接口可以根据需要实现,若不实现直接返回http响应码200。
API地址:
/v1/3rd/file/online
调用方法:
POST
请求头(由weboffice开放平台写入):
Header 值 描述 User-Agent wps-weboffice-openplatform 用户代理 x-wps-weboffice-token xxxxxxx 校验身份的token,值根据对接的企业而定 x-weboffice-file-id xxxxxxx 文件id
请求参数示例:
参数名 参数类型 数据类型 描述 可选 _w_signature query string 请求签名 否 _w_appid query string 应用id 否 (任意参数) query (任意类型) 按照需求传入参数 是 ids body string[] 用户id数组 否
示例:
http://www.xxx.cn/v1/3rd/file/online?_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&_w_param1=1000&_w_param2=example.doc&_w_signature=tBnhFqvVrC1LcJKye1m7GjzvqoA%3D
POST请求示例:
{
ids:["id1000", "id2000"] //当前协作用户id
}
返回值:
status code为200表示获取数据成功。其余值表示失败,需要在返回中指定code,msg等信息。
5. 上传文件新版本
描述:
当文档在线编辑并保存之后,上传该文档最新版本到对接模块,同时版本号进行相应的变更,需要对接方内部实现文件多版本管理机制。
API地址:
/v1/3rd/file/save
调用方法:
POST
请求头(由weboffice开放平台写入):
Header 值 描述 User-Agent wps-weboffice-openplatform 用户代理 x-wps-weboffice-token xxxxxxx 校验身份的token,值根据对接的企业而定 x-weboffice-file-id xxxxxxx 文件id
请求参数示例:
参数名 参数类型 数据类型 描述 可选 _w_signature query string 请求签名 否 _w_appid query string 应用id 否 (任意参数) query (任意类型) 按照需求传入参数 是 file body file 新版本的文件 否
示例:
http://www.xxx.cn/office/v1/3rd/file/save?_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&_w_userid=1000&_w_fname=example.doc&_w_signature=tBnhFqvVrC1LcJKye1m7GjzvqoA%3D
此处的_w_fname等等是对接模块处理的参数,可以对接模块自己定义,weboffice服务不会对此参数进行处理,http://www.xxx.cn 为企业对应的域名和nginx转发地址。
返回值:
status code为200表示获取数据成功,返回下面的信息。其余值表示失败,需要在返回中指定code,msg等信息。
响应信息示例:
{
file: {
id: "f132aa30a87064", //文件id,字符串长度小于40
name: "example.doc", //文件名
version: 2, //当前版本号,位数小于11
size: 200, //文件大小,单位时kb
download_url: "http://www.xxx.cn/v1/file?fid=f132aa30a87064" //文件下载地址
}
}
6. 获取特定版本的文件信息
描述:
在历史版本预览和回滚历史版本的时候,获取特定版本文档的文件信息。
API地址:
/v1/3rd/file/version/:version
调用方法:
GET
请求头(由weboffice开放平台写入):
Header 值 描述 User-Agent wps-weboffice-openplatform 用户代理 x-wps-weboffice-token xxxxxxx 校验身份的token,值根据对接的企业而定 x-weboffice-file-id xxxxxxx 文件id
请求参数:
参数名 参数类型 数据类型 描述 可选 _w_signature query string 请求签名 否 _w_appid query string 应用id 否 (任意参数) query (任意类型) 按照需求传入参数 是
示例:
http://www.xxx.cn/v1/3rd/file/version/6?_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&_w_param1=1000&_w_param2=example.doc&_w_signature=tBnhFqvVrC1LcJKye1m7GjzvqoA%3D
返回值:
status code为200表示获取数据成功,返回下面的信息。其余值表示失败,需要在返回中指定code,msg等信息。
正确返回响应信息示例:
{
file: {
id:”f132aa30a87064”, //文件id,字符串长度小于40
name: "example.doc", //文件名
version: 6, //当前版本号,位数小于11
size: 200, //文件大小,单位为kb
create_time: 1136185445, //创建时间,时间戳,单位为秒
creator: "id0", //创建者id,字符串长度小于40
modify_time: 1551409818, //修改时间,时间戳,单位为秒
modifier: "id1000", //修改者id,字符串长度小于40
download_url: "http://www.xxx.cn/v1/file?fid=f132aa30a87064&version=6" //文档下载地址
}
}
7. 文件重命名
描述:
用户在h5页面修改了文件名后,把新的文件名上传到服务端保存。
API地址:
/v1/3rd/file/rename
调用方法:
PUT
请求头(由weboffice开放平台写入):
Header 值 描述 User-Agent wps-weboffice-openplatform 用户代理 x-wps-weboffice-token xxxxxxx 校验身份的token,值根据对接的企业而定 x-weboffice-file-id xxxxxxx 文件id
请求参数:
参数名 参数类型 数据类型 描述 可选 _w_signature query string 请求签名 否 _w_appid query string 应用id 否 (任意参数) query (任意类型) 按照需求传入参数 是 name body string 文件新名称 否
PUT请求示例:
{
"name": "rename.doc" //文件新名称
}
示例:
http://www.xxx.cn/v1/3rd/file/rename?_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&_w_param1=1000&_w_param2=example.doc&_w_signature=tBnhFqvVrC1LcJKye1m7GjzvqoA%3D
返回值:
status code为200表示获取数据成功。其余值表示失败,需要在返回中指定code,msg等信息。
8.获取所有历史版本文件信息
描述:
获取当前文档所有历史版本的文件信息,以数组的形式,按版本号从大到小的顺序返回响应。
API地址:
/v1/3rd/file/history
调用方法:
POST
请求头(由weboffice开放平台写入):
Header 值 描述 User-Agent wps-weboffice-openplatform 用户代理 x-wps-weboffice-token xxxxxxx 校验身份的token,值根据对接的企业而定 x-weboffice-file-id xxxxxxx 文件id
请求参数:
参数名 参数类型 数据类型 描述 可选 _w_signature query string 请求签名 否 _w_appid query string 应用id 否 id body string 文件id 否 offset body int 记录偏移量 否 count body int 记录总数 否 (任意参数) query (任意类型) 按照需求传入参数 是
示例:
http://www.xxx.cn/v1/3rd/file/history?_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&_w_param1=1000&_w_param2=example.docx&_w_signature=tBnhFqvVrC1LcJKye1m7GjzvqoA%3D
POST请求示例:
{
id: "f132aa30a87064”,
offset: 0,
count: 3
}
返回值:
status code为200表示获取数据成功,返回下面的信息。其余值表示失败,需要在返回中指定code,msg等信息。
正确返回响应信息示例:
{
histories: [
{
id: "f132aa30a87064", //文件id,字符串长度小于40
name: "example.doc", //文件名
version: 3, //版本号,位数小于11
size: 200, //文件大小
download_url: "http://www.xxx.cn/v1/file?fid=f132aa30a87064&version=3", //文档下载地址
create_time: 1136185445, //创建时间,以时间戳表示,单位为秒
modify_time: 1539847453, //修改时间,以时间戳表示,单位为秒
creator: {
id: "id0", //创建者id,字符串长度小于40
name: "wps-0", //创建者名字
avatar_url: "http://xxx.cn/?id=0" //创建者头像地址
},
modifier: {
id: "id1000", //修改者id,字符串长度小于40
name: "wps-1000", //修改者名字
avatar_url: "http://xxx.cn/?id=1000" //修改者头像地址
}
},
{
id: "f132aa30a87064", //文件id,字符串长度小于40
name: "example.doc", //文件名
version: 2, //版本号,位数小于11
size: 200, //文件大小
download_url: "http://www.xxx.cn/v1/file?fid=f132aa30a87064&version=2",
//文档下载地址
create_time: 1136185445, //创建时间,以时间戳表示,单位为秒
modify_time: 1539847453, //修改时间,以时间戳表示,单位为秒
creator: {
id: "id0", //创建者id,字符串长度小于40
name: "wps-0", //创建者名字
avatar_url: "http://xxx.cn/?id=0" //创建者头像地址
},
modifier: {
id: "id1000", //修改者id,字符串长度小于40
name: "wps-1000", //修改者名字
avatar_url: "http://xxx.cn/?id=1000" //修改者头像地址
}
},
{
id: "f132aa30a87064", //文件id,字符串长度小于40
name: "example.doc", //文件名
version: 1, //版本号,位数小于11
size: 200, //文件大小
download_url: "http://www.xxx.cn/v1/file?fid=f132aa30a87064&version=1",
//文档下载地址
create_time: 1136185445, //创建时间,以时间戳表示,单位为秒
modify_time: 1539847453, //修改时间,以时间戳表示,单位为秒
creator: {
id: "id0", //创建者id,字符串长度小于40
name: "wps-0", //创建者名字
avatar_url: "http://xxx.cn/?id=0" //创建者头像地址
},
modifier: {
id: "id1000", //修改者id,字符串长度小于40
name: "wps-1000", //修改者名字
avatar_url: "http://xxx.cn/?id=1000" //修改者头像地址
}
}
]
}
9. 新建文件
描述:
在模板页选择对应的模板后,将新创建的文件上传到对接模块,返回访问此文件的跳转url。
文字模板列表地址:
https://wwo.wps.cn/office/w/new/0?_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxappid&_w_signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&……(对接模块需要的自定义参数)
表格模板列表地址:
https://wwo.wps.cn/office/s/new/0?_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxappid&_w_signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&……(对接模块需要的自定义参数)
API地址:
/v1/3rd/file/new
调用方法:
POST
请求头(由weboffice开放平台写入):
Header 值 描述 User-Agent wps-weboffice-openplatform 用户代理 x-wps-weboffice-token xxxxxxx 校验身份的token,值根据对接的企业而定 x-weboffice-file-id xxxxxxx 文件id
请求参数示例:
参数名 参数类型 数据类型 描述 可选 _w_signature query string 请求签名 否 _w_appid query string 应用id 否 (任意参数) query (任意类型) 按照需求传入参数 是 file body file 新创建的文件 否 name body string 新创建的文件名 否
示例:
http://www.xxx.cn/v1/3rd/file/new?_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&_w_signature=tBnhFqvVrC1LcJKye1m7GjzvqoA%3D
POST请求示例:
Content-Disposition: form-data; name="file"; filename="/home/wps/dir/1.docx” //待上传文件对象
Content-Disposition: form-data; name="name" 1.docx //新文件名称
返回值:
status code为200表示获取数据成功,返回下面的信息。其余值表示失败,需要在返回中指定code,msg等信息。
响应信息示例:
{
redirect_url: "http://wwo.wps.cn/office/w/<:fileid>?_w_fname=example.doc&_w_userid=1000&_w_appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&_w_signature=878e966c8e729a2a28e699a3455a57f2",
//根据此url,可以访问到对应创建的文档
user_id: "id1000" //创建此文档的用户id
}