obsidian-wolai-sync/docs/WolaiAPI.md

394 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Wolai API
通过wolai开放API可以访问wolai 的块、页面、数据库等未来开放在wolai开发者中心创建一个应用将应用连接到wolai实现更多自有场景的数据连接。wolai开放API采用RESTful规范通过 GETPOST...请求来获取数据。发送所有请求的 base URL 是 `https://openapi.wolai.com/v1`。(目前仅提供 API暂不支持SDK
您可以用wolai API 打通三方应用同步滴答清单微信钉钉飞书到wolai或者自建应用。支持PDF导入生成自动汇总的周报基于数据表格的图表生成等
# 创建 Token POST /token
### 接口描述
创建用于访问后续API的Token
### 请求地址
**POST **`/token`
### 请求参数 *[Request Body]*
||||
|-|-|-|
|App**Id** *string*|应用ID|`必填`|
|**AppSecret** *string*|应用秘钥|`必填`|
### 返回参数说明
返回 Token 信息
### 请求示例
```JSON
{
"appId":"qGPon7raLEu4nJTXCBkeDB",
"appSecret":"e8501b4c8ed17f97961db65d438c61ba0c4d58ad894ac23c924c1a098b03b1f7"
}
```
### 返回示例
```JSON
//成功
{
"data": {
"app_token": "63b826cad9b3154670ff4242641c1f175320bf6b1b501bc860c7bb4772c9ce74",
"app_id": "qGPon7raLEu4nJTXCBkeDA",
"create_time": 1671523112626,
"expire_time": -1,
"update_time": 1671523112626
}
}
//失败
{
"data": null
}
```
# 创建块 POST /blocks
### 接口描述
创建一个块或多个块并插入到 parent_id 对应的块下
创建限制单次批量不能超过20个块
### 请求地址
**POST** ** **`/block`
### *请求参数 [Request Body] *
#### 基础参数
在 Body json 内填入 blocks 及parent_id属性 。blocsk 可以为单个block 或 block 数组block 对象 内 type 为必传字段类型为支持的块类型详见BlockTypes),其余字段查看下方。 **↳ **符号表示为 blocks 包含的子字段, 详见右侧请求示例。
|属性名|类型|必填/可选|描述|
|-|-|-|-|
|parent_id|string|`必填`|父块 ID|
|blocks|单个Block对象或Block数组 注意下方为块可选的公共属性|`必填`|包含以下公共属性,及特殊属性的顶层字段|
|**↳ **type|BlockTypes|`必填`|块类型|
|**↳ **block_front_color|BlockFrontColors||前景色|
|**↳ **block_back_color|BlockBackColors||背景色|
|**↳ **text_alignment|TextAlign||文本对齐|
|**↳ **block_alignment|BlockAlign||块对齐|
|**↳ **其他属性|参考Block|||
什么是父块
wolai 中父子关系有三种,一种是页面里的内容,一种是所有缩进的内容都是子块,另外一种是容器块,如分栏和模板按钮内的内容是该容器块的子块。
如:
1. 当前页面包含了文本,简单表格,着重块,代码块等一系列块。注意包含的块并不包括页面本身。
2. 缩进子块
父块
子块
3. 容器块
包含一个待办列表子块
- [ ]
parent_id 为父块id, 可以从块菜单内的“复制块 ID” 来获取。页面块可以从
该页面的访问链接内最后的路径来获取[//]: # (如这个页面的链接为 [https://www.wolai.com/wolai/iSCCMiztmGHpoNhe4JrSsk](https://www.wolai.com/wolai/iSCCMiztmGHpoNhe4JrSsk)则该页面ID 为iSCCMiztmGHpoNhe4JrSsk)也可以从父页面或父块内该块的块菜单内的“复制页面ID”来获取。
![](https://secure2.wostatic.cn/static/ktT6UgZzBe5ZCmfZwh2jtC/image.png?auth_key=1748942946-exth5iYLWT8w5uaCz5cBPQ-0-c723d3d045c7dbdb2c2cfca99be8d8bf)
![](https://secure2.wostatic.cn/static/iTxsrNA6ETPGcffhUdNFUT/image.png?auth_key=1748942946-f3ze7FTwXq9s4KRJEEBHeT-0-b26d5eb066a617c369607bcf01d463b4)
### 返回参数
可访问的块链接
### 请求示例* *
```JSON
{
"parent_id": "父块ID",
"blocks": [
{
"type": "text",
"content": "Hello ",
"text_alignment": "center"
},
{
"type": "heading",
"level": 1,
"content": {
"title": "World!",
"front_color": "red"
},
"text_alignment": "center"
}
]
}
```
### 返回示例
```JSON
//成功
{
"data":"https://www.wolai.com/o4icCBRxnvHS99j1RRAuAp#iTZum4zcxGNRpdeVcVvzWw"
}
//失败
{
"message": "Token 未填写, 请检查 Header 中 Authorization 字段内是否填写 Token, Token 相关说明请参考https://www.wolai.com/eLKwqTsGHaXV6SvjedEt43",
"error_code": 17003,
"status_code": 401
}
```
# 插入数据 POST /databases/{id}/rows
### 接口描述
插入数据表格行数据
如果插入多选/单选列中包含目前数据表格该列中不存在的选项,会对该多选/单选列自动增加选项。
### 请求地址
POST ** **`/databases/{id}/rows`
### 获取数据表格 ID
**数据表格嵌入块**
- 从数据表格菜单中获取,选择 下的复制访问链接,并取出链接最后的 ID。
![](https://secure2.wostatic.cn/static/fGYrKkYMQ6miSPxXYgvqmC/image.png?auth_key=1748942760-r6L4Qq7FZ2PVadbCPZBuay-0-80b1abe7088c16b0f2b2680fc766ed5f)
- 选择块菜单旁边的 **复制引用视图链接**/后 ?前面的中间部分为数据表格块 ID示例
[https://www.wolai.com/5FSqWmTrdAXBXo3EQhDCq4?viewId=s9k2EPzfqUaVSRXPnKGb](https://www.wolai.com/5FSqWmTrdAXBXo3EQhDCq4?viewId=s9k2EPzfqUaVSRXPnKGb)
其中 `5FSqWmTrdAXBXo3EQhDCq4` 为数据表格块 ID。
**数据表格页面**
- 从页面域名中获取,示例:[https://www.wolai.com/wolaiteam/4prhMAfrPzoipvkXhPKD34](https://www.wolai.com/wolaiteam/4prhMAfrPzoipvkXhPKD34) 其中`4prhMAfrPzoipvkXhPKD34`为数据表格块 ID。
- 从数据表格菜单中获取,方法同上。
### *请求参数 [Request Path]*
||||
|-|-|-|
|**Id** *string*|数据表格块 ID 可以在页面域名内或者数据表格全局菜单获取|`必填`|
### *请求参数 [Request Body]*
||||
|-|-|-|
|**rows** CreateDatabaseRow[]|要插入的多行数据数组,最多支持单次插入 20行。|`必填`|
### *返回参数 *
|||
|-|-|
|**data** *string*[]|数据行页面链接列表|
### *请求示例 *
```JSON
POST https://openapi.wolai.com/v1/databases/c1YSDeeFUKXddmFtV1wTu9/rows
{
"rows": [{
"标题": "标题",
"多选列": ["1", "2"],
"数字": 12,
"CheckBox": false
}]
}
```
### *返回示例 *
```JSON
//成功
{
"data": ["https://www.wolai.com/c1YSDeeFUKXddmFtV1wTu9"]
}
}
//失败
{
"message": "缺少请求体 Body",
"error_code": 17001,
"status_code": 400
}
```
# 获取表格内容 GET /databases/{id}
### 接口描述
获取数据表格内容
### 请求地址
**GET** ** **`/databases/{id}`
### 获取数据表格 ID
**数据表格嵌入块**
- 从数据表格菜单中获取,选择 下的复制访问链接,并取出链接最后的 ID。
![](https://secure2.wostatic.cn/static/fGYrKkYMQ6miSPxXYgvqmC/image.png?auth_key=1748959068-wAhNL72dNEU7j96Rmugo2w-0-11082dd25b5924babcfd38a212645c36)
- 选择块菜单旁边的 **复制引用视图链接**/后 ?前面的中间部分为数据表格块 ID示例
[https://www.wolai.com/5FSqWmTrdAXBXo3EQhDCq4?viewId=s9k2EPzfqUaVSRXPnKGb](https://www.wolai.com/5FSqWmTrdAXBXo3EQhDCq4?viewId=s9k2EPzfqUaVSRXPnKGb)
其中 `5FSqWmTrdAXBXo3EQhDCq4` 为数据表格块 ID。
**数据表格页面**
- 从页面域名中获取,示例:[https://www.wolai.com/wolaiteam/4prhMAfrPzoipvkXhPKD34](https://www.wolai.com/wolaiteam/4prhMAfrPzoipvkXhPKD34) 其中`4prhMAfrPzoipvkXhPKD34`为数据表格块 ID。
- 从数据表格菜单中获取,方法同上。
### *请求参数 [Request Path]*
||||
|-|-|-|
|**blockId** *string*|数据表格块 ID 可以在页面域名内或者数据表格全局菜单获取|`必填`|
### *返回参数 *
|||
|-|-|
|**ColumnOrder** *string[]*|列顺序,以列名排序|
|**Rows** DatabaseRowData*[]*|数据表格内容,数据表格行列表,每行包含每列对应的数据|
### *请求示例 *
```JSON
GET https://openapi.wolai.com/v1/databases/c1YSDeeFUKXddmFtV1wTu9
```
### *返回示例 *
```JSON
//成功
{
"data": {
"column_order": [
"标题",
"标签"
],
"rows": [
{
"page_id": "4YRtvKiYMQBXGvjz7Y52hC", //行对应的页面 ID
"data": {
"标题": {
"type": "primary",
"value": "测试"
},
"标签": {
"type": "select",
"value": "待完成"
}
}
}
]
}
}
//失败
{
"message": "Token 未填写, 请检查 Header 中 Authorization 字段内是否填写 Token, Token 相关说明请参考https://www.wolai.com/wolai/a3qaYWF3P3SWUGxWPvxTjP",
"error_code": 17003,
"status_code": 401
}
```
# 分页参数
### 请求
资源分页都接受以下请求参数(query paramters)
如: `/block/{id}/children?page_size=10&start_cursor=cursor_id`
|**参数**|**类型**|**描述**|
|-|-|-|
|`start_cursor`|`string`(可选的)|从上一个响应中返回的`cursor`,用于请求下一页的结果。 默认值: `undefined`,表示从列表的开始返回结果。|
|`page_size`|`number`(可选的)|响应中需要的完整列表中的项目数量。 默认值:`200 `最多:`200 `响应可能包含少于这个数量的结果。|
### 响应
资源的批量请求会返回以下参数:
|**字段**|**类型**|**描述**|
|-|-|-|
|`has_more`|`boolean`|当响应包括列表的结尾时,为`false`。否则,为`true`。|
|`next_cursor`|`string`|只有当`has_more`为 `true`时才可用。 用来检索下一页的结果,方法是将该值作为`start_cursor`参数传递给同一个端点。|
# 块类型
[Block](https://www.wolai.com/sBh7HkJUCtEMVcDF8xo9Gz)
[BlockTypes](https://www.wolai.com/2RsvgCzmLo5fvQrDxfSXyW)
[BlockBackColors](https://www.wolai.com/bCwb12wh1ke4hYb2GiNHcS)
[BlockFrontColors](https://www.wolai.com/4wCxFNa2kScj9tRUMRhPzG)
[InlineTitleType](https://www.wolai.com/2hVfKgFPjZVN8vd7FQpACX)
[ RichText](https://www.wolai.com/mYn9ePcFv7UzHezoLr3CXE)
[BlockAlign](https://www.wolai.com/quouz2gwGy7dqnwHWkfZJu)
[TextAlign](https://www.wolai.com/bwvNHsJmknpnsgdNHKyTAE)
[CreateRichText](https://www.wolai.com/sCbv85cCmDNvH6mkvANvwj)
[HeadingLevel](https://www.wolai.com/1hsY7VqXPHov43Qz4booyT)
[EmojiIcon](https://www.wolai.com/wjXib8ykTN19MNd6LmpTKW)
[LinkIcon](https://www.wolai.com/faU5M5NK2KYdfNurfu6yfX)
[CodeSetting](https://www.wolai.com/cKn5FuFjnmHxCxzcHmpn7a)
[CodeLanguage](https://www.wolai.com/3Uimn9YiAtFQMgFQGxn5BU)
[LinkCover](https://www.wolai.com/3Bbc25FEey8JULGkdc4BSR)
[TodoListProStatus](https://www.wolai.com/qJRTMukqYLKdLzjEY2dz11)
[PageSetting](https://www.wolai.com/79S6Lw12HDXq2GE1EmuUKE)
[鼠标悬停](https://www.wolai.com/mvpw6R5PxsjqyvFYgqGetQ)
[分页参数](https://www.wolai.com/83f7rDQPRFCcLwwnjhPMkP)