API 机器人测试页

前言

本潜水员记得最开始看到 Notion 即将发布 API 的新闻就是在少数派,后来又看到有大佬发了一篇用 API 辅助记账的应用文章。很是兴奋,但苦于门槛较高一直在等方便一些的体验文章。

直到现在 API 功能已正式发布,但是仍没见新文,心痒难耐,索性直接研究了一下。踩了一些坑,同时深感测试之麻烦。要复制来去扒 ID,看报错内容,摸索对象类型,折腾下来不禁头大了半圈。

所以一气之下用 Python 撸了两个工具,顺便写上使用教程和心得,希望可以帮大家在测试 API 的时候惬意些。

本文前半部分比较繁琐,但是很推荐看完,可以参考目录跳转。

原计划是用快捷指令完成这些功能,但是作者的设备目前都是 beta 版系统,快捷指令编辑的时候频出 bug 与 UI 错误。最后甚至用钟大的 JSBox 使快捷指令跳转执行 JavaScript 代码才可以成功添加记录。所以快捷指令版 Notion 助手要等正式版系统发布之后再更新了(或者有意帮忙的大佬也可以私信讨论)。

如果觉得 Python 门槛太高,可以多点赞,大家需求高的话我就封成 exe 文件再发出来(嘿嘿)。

简单介绍

拿个人最常用的吃药记录举例,最近在吃褪黑素和咖啡因片。那么我很想知道药效如何、多长时间起作用,就可以在记录时写入时间和净含量,再用 Notion 自动计算出经过的时间和服用量等数据。

从作者那里复制来的测试表格

从作者那里复制来的测试表格

不得不说这种小公式使用起来真的是很舒服,而且日常使用比 Excel 更美观易读,但是需要每次吃药都打开 Notion 手动选择数据记录下来。当然可以使用模板自动填充大部分数据,但仍需要打开 Notion 才能操作,并且还需要选择日期。如果能用手机上的快捷指令一键添加就好了。

Notion API 当然就可以实现这个功能。首先我们需要创建一个机器人,然后将机器人添加到需要进行操作的页面中,很简单,大佬的帖子写的很详细了。

但是后续的流程操作实在繁琐,以 Python 举例:(非常推荐看完下面正常方法再看辅助代码的使用教程,这样您就理解我了)

POST —— 提交数据给 Notion 的方式

如果想在某个表格里添加一项记录,你需要如下 POST 代码将数据提交给 Notion 以及一个格式正确的消息体(后面会说怎么制作)

# 在 Python 中使用 requests 模块的功能进行 GET 或 POST 操作
NotionData = requests.request(
		# POST 提交,GET 拉取
    "POST",
    # API 链接,不同操作类型的 API 链接不同,例如这个就是数据库 databases 的 API 链接
    "<https://api.notion.com/v1/databases>",
    # 读取消息体,消息体需要另行编辑,后文再说
    json = body,
    # 消息头,内有必要信息
    headers={
        # 设置机器人令牌,即 Notion 的机器人码
        "Authorization": "secret_kWWY0dlOI7E0nRSZbNmvxADpgFjtOD876J4W0HBn5bj", 
        # 设置 Notion 版本,目前不用改
        "Notion-Version": "2021-05-13"
        },
    )

消息体的格式与所需数据

好的,在上面的步骤中,你要根据需求自行更改三项内容:API 链接、消息体、机器人令牌。其中API 链接和机器人令牌都是易得的,消息体怎么做呢?这就比较麻烦了,看下面代码: