🌌Notion API 的使用
00 分钟
2022-9-18
2022-9-19
type
status
date
slug
summary
tags
category
icon
password
Edited
Sep 19, 2022 01:12 AM
Created
Sep 17, 2022 11:42 AM

前置步骤

1. 创建一个数据库

数据库信息随便设置
notion image

2. 添加一个 Integrations

我们需要设置一个集成,通过Notion API连接你的数据库,然后生成一个访问令牌来访问Notion的API。
先打开 Integrations 界面(在Setting → Connections)
notion image
然后新建一个 Integration
notion image
Integration 的 name 随便设,这里设置成了 rc-db-userInfo

3. 将 Integration 添加到数据库的页面

搜索 name 添加到你的页面中
notion image
 

Notion 客户端

配置

现在我们有了工作区、数据库和集成的设置,我们可以开始为我们的数据库创建后台服务器。
初始化 package

获取 数据库 ID 和 Integration Token

数据库 ID
复制数据库的链接
notion image
然后 获取数据库 ID:
https://www.notion.so/{workspace_name}/{database_id}?v={view_id}
https://www.notion.so/jinso/e55be1ef376946f3aca88bc429121276?v=489f51ee150a44c18f3a38936560daeb
即 名字后面、问号前面的 ID(用下划线标识了)
 
Integration Token
打开你创建的 Integration
notion image
打开后复制即可

服务器

 

深入

Database

数据库对象结构

最重要的部分就是数据库的 schema,在属性 properties

Properties

title 类型是特殊的
每个数据库都存在一个 title 类型,它用来指向数据库的每一行

添加 页面 到数据库

首先,在数据库中,我们默认认为每一行为一条数据,但其实也没错,而notion是以一个页面为一行数据,并添加页面的 properties 来保存一些信息
要添加页面到数据库,要用到 create a page API
要创建一个 page 需要两个关键属性:parentproperties
  • parent :用来指定当前页面的父节点页面,也就是数据库
  • properties :添加页面的properties,也就是每一个的信息

更新 页面

需要 pageId (你需要修改的数据库具体页面的ID)和需要修改的 property
https://www.notion.so/0032-6479b35219eb4ce6bb792c8f053912e8

查询 数据库里的 具体页面

通过使用 query a database API
里面通过 filters 来过滤属性,获取到具体的页面
还有 Compound filters 通过使用 andor 来过滤
notion image
ℹ️
查找一个数据库的所有页面
调用 query API 而不使用 filter 属性

排序

通过 sorts 属性来进行排序
  • timestamp:排序的属性
  • direction: 顺序还是倒序

Page Content

页面结构:
notion image
页面内容是用一系列的块对象(block objects)来表示的,这些块可以被参考作为页面的 children
其中每个块都要一个 type ,如 heading、 image …
有的块如 toggle 等是有 children 的
下面是一个 段落块 的对象信息
ℹ️
页面也是一个块
页面是一个特殊的块,但它也有孩子,你也可以引用它作为一系列的块,通过 ID
Rich text的格式:

创建一个页面并附加块

通过 children 属性来添加

读取一个页面上块的信息

记住 page 也是一个块,所以也可以用 pageid 来充当 blockid
它返回一个包含所有块的数组

添加块到页面上

 

参考链接:
  1. Getting started (notion.com)
  1. 轻松使用Notion API——Notion教程 - 掘金 (juejin.cn)
 
上一篇
HTML Drag & Drop API 指南
下一篇
Fastify 的使用

评论
Loading...