本潜水员记得最开始看到 Notion 即将发布 API 的新闻就是在少数派,后来又看到有大佬发了一篇用 API 辅助记账的应用文章。很是兴奋,但苦于门槛较高一直在等方便一些的体验文章。
直到现在 API 功能已正式发布,但是仍没见新文,心痒难耐,索性直接研究了一下。踩了一些坑,同时深感测试之麻烦。要复制来去扒 ID,看报错内容,摸索对象类型,折腾下来不禁头大了半圈。
所以一气之下用 Python 撸了两个工具,顺便写上使用教程和心得,希望可以帮大家在测试 API 的时候惬意些。
本文前半部分比较繁琐,但是很推荐看完,可以参考目录跳转。
原计划是用快捷指令完成这些功能,但是作者的设备目前都是 beta 版系统,快捷指令编辑的时候频出 bug 与 UI 错误。最后甚至用钟大的 JSBox 使快捷指令跳转执行 JavaScript 代码才可以成功添加记录。所以快捷指令版 Notion 助手要等正式版系统发布之后再更新了(或者有意帮忙的大佬也可以私信讨论)。
如果觉得 Python 门槛太高,可以多点赞,大家需求高的话我就封成 exe 文件再发出来(嘿嘿)。
拿个人最常用的吃药记录举例,最近在吃褪黑素和咖啡因片。那么我很想知道药效如何、多长时间起作用,就可以在记录时写入时间和净含量,再用 Notion 自动计算出经过的时间和服用量等数据。
从作者那里复制来的测试表格
不得不说这种小公式使用起来真的是很舒服,而且日常使用比 Excel 更美观易读,但是需要每次吃药都打开 Notion 手动选择数据记录下来。当然可以使用模板自动填充大部分数据,但仍需要打开 Notion 才能操作,并且还需要选择日期。如果能用手机上的快捷指令一键添加就好了。
Notion API 当然就可以实现这个功能。首先我们需要创建一个机器人,然后将机器人添加到需要进行操作的页面中,很简单,大佬的帖子写的很详细了。
但是后续的流程操作实在繁琐,以 Python 举例:(非常推荐看完下面正常方法再看辅助代码的使用教程,这样您就理解我了)
如果想在某个表格里添加一项记录,你需要如下 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 链接和机器人令牌都是易得的,消息体怎么做呢?这就比较麻烦了,看下面代码: