在 HTML 中引入 JavaScript 文件時,可以使用 defer 屬性,該屬性可以推遲(defer)腳本的執行,即等到整個 HTML 文檔解析完畢後才執行腳本。 使用 defer 屬性可以避免在解析 HTML 文檔的過程中阻塞頁面的渲染,提高頁面載入的速度。 同時,defer 屬性還可以確保 ...
前言
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,建立幾個想要對接欄位 。這裡我建立了一個書店的表格。
-
要使用Notion的API,則先要創建一個integration。integration字面翻譯叫做“融入”,這是Notion自己的叫法,我們可以簡單理解為平時經常說的API Token。創建方式見官方文檔。創建成功後你會得到一個Secrets字元串。 有了integration之後,還要把它連接到剛纔的database中,使得在調用API時,獲得此database的訪問許可權。在最右上角的三個點圖標中,找到Add connections,輸入剛纔的integration名,確認後連接成功。
-
kintone方面的準備
-
建立一個kintone App,用來接受Notion的database數據,所以欄位類型必須選擇合適的。 書名、ISBN、作者、可以選擇單行文本框,定價選擇數值,標簽可以選擇覆選框或是多選。
-
給每個欄位設置好欄位代碼,以備在程式中使用。我以json object的形式給出,屬性名是欄位名,屬性值是欄位代碼,將來程式里能直接用得上。
-
{ 書名: 'book_name', ISBN: 'isbn', 作者: 'author', 定價: 'price', 標簽: 'label', }
創建token,以便將來程式中訪問此App。
-
程式編寫運行環境方面
-
本文中所演示的代碼,都是在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/
-
-
-
-