4

数据对接:从Notion Database到低代码平台 - cybozu开发者

 1 year ago
source link: https://www.cnblogs.com/cybozu/p/17136877.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Notion简介

近几年,有一款叫Notion的产品异常火爆,它是集笔记、任务管理、Wiki、数据管理为一体的产品,他主打两个理念「模块化」和「All-in-one」,Notion最有魅力的还是引进了Database和双向链的理念

Notion也算是一个渐进式的工具产品,渐进式你可以理解为,可以简单的当笔记工具用,也可以当个人或小团队的工作知识库和任务管理工具用。

Notion与kintone

在实际使用Notion的过程中,我发现它的Database数据形式有着重要地位,它和Notion其他一些特色功能融合后,充分放大了其扩展性,自由性,和灵活性。Notion的Database属于关系型数据库的范畴,我不禁想到,关系型数据库的形式也是kintone App的核心内容,所以那他们之间一定是可以互通的。

今天我们就来探讨一下如何进行Notion和kintone之间的数据转换。

本着抛砖引玉的理念,本文想要做的更多是启发开发思路,而非那种可以拿来即用成熟产品。所以探讨和演示的范围不会面面俱到。

说到数据对接,本应该是双向的,但本文只讨论Notion向kintone的单向转换。因为反向转换的话,完全可以反推出来,有需求的读者可以自行推演。

Notion和kintone的二维结构表格中的字段,都有自己类型的设计,有相似的,也有不同的。本文中所演示的,只是一部分字段的转换,而且字段的对应关系也非严格匹配。读者可根据实际需求,或增加更多转换字段,或更改的字段类型对应关系。

譬如,Notion中的字段类型“Text”,其实技术上可以叫“RichText”(带丰富格式的文本),但我转换到kintone时,用的只是普通的“单行文本框”。

Notion方面的准备

  • 在Notion中建立一个database,建立几个想要对接字段 。这里我建立了一个书店的表格。

    1446818-20230220114920634-1927695358.png
    • 要使用Notion的API,则先要创建一个integration。integration字面翻译叫做“融入”,这是Notion自己的叫法,我们可以简单理解为平时经常说的API Token。创建方式见官方文档。创建成功后你会得到一个Secrets字符串。 

      1446818-20230220115121994-809883762.png
      有了integration之后,还要把它连接到刚才的database中,使得在调用API时,获得此database的访问权限。在最右上角的三个点图标中,找到Add connections,输入刚才的integration名,确认后连接成功。 
    • 1446818-20230220115337873-92904419.png

      kintone方面的准备

      • 建立一个kintone App,用来接受Notion的database数据,所以字段类型必须选择合适的。 书名、ISBN、作者、可以选择单行文本框,定价选择数值,标签可以选择复选框或是多选。

        1446818-20230220115555513-1662346310.png
        • 给每个字段设置好字段代码,以备在程序中使用。我以json object的形式给出,属性名是字段名,属性值是字段代码,将来程序里能直接用得上。

        • {
          书名: 'book_name',
          ISBN: 'isbn',
          作者: 'author',
          定价: 'price',
          标签: 'label',
          }

            创建token,以便将来程序中访问此App。 

          1446818-20230220120020641-784102360.png
          • 程序编写运行环境方面

          • 本文中所演示的代码,都是在nodejs的npm模式下编写调试的,我们也强烈建议您也在这种模式下来编写程序。而且我们将分别使用Notion和kintone的SDK,这种模式下引用库也会相对方便一些。下面是package.json文件的一部分相关设置,供您参考。

            {
            "name": "notion2kintone",
            "version": "1.0.0",
            "type": "module",
            "dependencies": {
            "@kintone/rest-api-client": "^3.1.11",
            "@notionhq/client": "^2.1.1"
            }
            }

              代码范例和代码解说,请点击:https://cybozudev.kf5.com/hc/kb/article/1582538/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK