obsidian-wolai-sync/docs/WolaiAPI.md

11 KiB
Raw Blame History

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]

AppId string 应用ID 必填
AppSecret string 应用秘钥 必填

返回参数说明

返回 Token 信息

请求示例

{
    "appId":"qGPon7raLEu4nJTXCBkeDB",
    "appSecret":"e8501b4c8ed17f97961db65d438c61ba0c4d58ad894ac23c924c1a098b03b1f7"
}

返回示例

//成功
{
    "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则该页面ID 为iSCCMiztmGHpoNhe4JrSsk)也可以从父页面或父块内该块的块菜单内的“复制页面ID”来获取。

返回参数

可访问的块链接

请求示例* *

{
  "parent_id": "父块ID",
  "blocks": [
      {
          "type": "text",
          "content": "Hello ",
          "text_alignment": "center"
      },
      {
          "type": "heading",
          "level": 1,
          "content": {
            "title": "World!",
            "front_color": "red"
          },
           "text_alignment": "center"
      }
  ]
}

返回示例

//成功
{ 
  "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

数据表格嵌入块

数据表格页面

请求参数 [Request Path]

Id string 数据表格块 ID 可以在页面域名内或者数据表格全局菜单获取 必填

请求参数 [Request Body]

rows CreateDatabaseRow[] 要插入的多行数据数组,最多支持单次插入 20行。 必填

*返回参数 *

data string[] 数据行页面链接列表

*请求示例 *

POST https://openapi.wolai.com/v1/databases/c1YSDeeFUKXddmFtV1wTu9/rows

{
  "rows": [{
    "标题": "标题",
    "多选列": ["1", "2"],
    "数字": 12,
    "CheckBox": false
  }]
}

*返回示例 *

//成功
{
    "data": ["https://www.wolai.com/c1YSDeeFUKXddmFtV1wTu9"]
}
}
//失败
{
    "message": "缺少请求体 Body",
    "error_code": 17001,
    "status_code": 400
}

获取表格内容 GET /databases/{id}

接口描述

获取数据表格内容

请求地址

GET ** **/databases/{id}

获取数据表格 ID

数据表格嵌入块

数据表格页面

请求参数 [Request Path]

blockId string 数据表格块 ID 可以在页面域名内或者数据表格全局菜单获取 必填

*返回参数 *

ColumnOrder string[] 列顺序,以列名排序
Rows DatabaseRowData*[]* 数据表格内容,数据表格行列表,每行包含每列对应的数据

*请求示例 *

GET https://openapi.wolai.com/v1/databases/c1YSDeeFUKXddmFtV1wTu9

*返回示例 *

//成功
{
    "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_moretrue时才可用。 用来检索下一页的结果,方法是将该值作为start_cursor参数传递给同一个端点。

块类型

Block

BlockTypes

BlockBackColors

BlockFrontColors

InlineTitleType

RichText

BlockAlign

TextAlign

CreateRichText

HeadingLevel

EmojiIcon

LinkIcon

CodeSetting

CodeLanguage

LinkCover

TodoListProStatus

PageSetting

鼠标悬停

分页参数