從Workflowy到印象筆記

青南發表於2018-03-17

Workflowy是一個極簡風格的大綱寫作工具,使用它提供的無限層級縮排和各種快捷鍵,可以非常方便的理清思路,寫出一個好看而實用的大綱。如下圖所示。

從Workflowy到印象筆記

印象筆記更是家喻戶曉,無人不知的跨平臺筆記應用。雖然有很多競爭產品在和印象筆記爭搶市場,但是印象筆記強大的搜尋功能還是牢牢抓住了不少使用者。

如果能夠把用Workflowy寫大綱的便利性,與印象筆記強大的搜尋功能結合起來,那豈不是如虎添翼?如下圖所示。

從Workflowy到印象筆記

EverFlowy就是這樣一個小工具。它可以自動把Workflowy上面的條目拉下來再同步到印象筆記中。如果Workflowy有更新,再執行一下這個小工具,它就會同步更新印象筆記上面的內容。Workflowy負責寫,印象筆記負責存,各盡其能,各得其所。

工具介紹

Everflowy基於Python 3開發,程式碼託管在Github中,地址為:github.com/kingname/Ev…這個小工具在持續開發中,目前可以實現Workflowy單向同步到印象筆記和差異更新。由於印象筆記的Oauth驗證方式需要申請才能對正式的賬號使用,但它又不會通過這種個人小工具的申請,所以目前暫時使用開發者Token。關於如何申請開通正式賬號的開發者Token,在後文會有詳細的說明。

安裝

首先需要保證電腦中安裝了Python 3,否則無法執行這個小工具。程式碼的依賴關係使用Pipenv來管理,所以需要首先使用pip安裝pipenv:

python3 -m pip install pipenv
複製程式碼

有了Pipenv以後,使用Git把程式碼拉到本地再安裝依賴:

git clone https://github.com/kingname/EverFlowy.git
cd EverFlowy
pipenv install
pipenv shell
複製程式碼

執行了上面的4條命令以後,你的終端視窗應該如下圖類似。

從Workflowy到印象筆記

Pipenv會自動建立一個基於Virtualenv的虛擬環境,然後把EverFlowy依賴的第三方庫自動安裝到這個虛擬環境中,再自動啟用這個虛擬環境。

配置

在程式碼的根目錄,有一個config.json檔案,開啟以後如下圖所示。

從Workflowy到印象筆記

你需要修改三個地方,分別是usernamepassworddev_token。其中usernamepassword分別對應了Workflowy的使用者名稱和密碼,而dev_token是印象筆記的開發者Token。

這裡需要說明一下印象筆記的開發者Token。印象筆記的開發者Token有兩套,分別是沙盒環境的開發者Token和生產環境的開發者Token。所謂沙盒環境,就是一個測試開發環境,這個環境是專門為了快速開發印象筆記App而設計的,它的地址為:sandbox.evernote.com。開啟這個網址,可以看到頁面上彈出了警告,如下圖所示。

從Workflowy到印象筆記

無論你之前是否有印象筆記的賬號,要使用沙盒環境,都必需重新註冊。註冊完成以後,通過訪問sandbox.evernote.com/api/Develop…獲取沙盒環境的開發者Token。

關於印象筆記的沙盒環境,我將另外開一篇文章來說明。本文主要介紹如何申請生產環境的開發者Token,從而可以使用正式的印象筆記賬號。

在2017年6月以後,印象筆記關閉了生產環境開發者Token的申請通道,如果開啟申請網址:app.yinxiang.com/api/Develop…,你會發現申請的按鈕是灰色的且無法點選。要解決這個問題,就需要讓印象筆記的客服幫忙。

登入自己的印象筆記正式賬號,開啟印象筆記首頁,把頁面拉到最下面,可以看到有一個“聯絡我們”,如下圖所示。

從Workflowy到印象筆記

進入“聯絡我們”,點選“聯絡客服”,如下圖所示。

從Workflowy到印象筆記

在聯絡客服的頁面填寫如下資訊,最後一項“簡要描述問題”填寫“我需要基於印象筆記API開發,請幫我開通生產環境開發者Token”並提交。

從Workflowy到印象筆記

大約24小時內,就可以受到客服回覆的郵件,如下圖所示。

從Workflowy到印象筆記

此時再次開啟app.yinxiang.com/api/Develop…就可以申請開發者Token了,如下圖所示。

從Workflowy到印象筆記

需要注意的是,開發者Token只會顯示一次,所以你需要立刻把它記錄下來。

執行

有了生產環境的開發者Token以後,把它填寫到config.json中,配置就算完成了。在終端輸入命令:

python3 EverFlowy.py
複製程式碼

程式就可以開始同步Workflowy的資料到印象筆記了。

同步完成以後,你會發現程式的根目錄出現了一個history.db檔案。這是一個sqllite的檔案,裡面就是你在Workflowy中的所有大綱內容和對應的印象筆記GUID和enml格式的內容。這是為了實現資料的差異更新而生成的。你可以使用各種能夠瀏覽sqllite的工具來檢視裡面的內容。

已知問題

  • 如果刪除了history.db,那麼再次執行Everflowy,Workflowy中的所有內容都會再次寫入印象筆記。
  • 如果單獨刪除了EverFlowy寫入印象筆記中的某一條目,卻不刪除history.db中的對應條目,WorkFlowy會因為找不到GUID而丟擲異常。
  • 沒有測試國際版印象筆記賬號是否可用。
  • 如過你想測試沙盒環境的開發者賬號,請修改evernote_util/EverNoteUtil.py第98行,把
client = EvernoteClient(token=self.dev_token, sandbox=False, service_host='app.yinxiang.com')
複製程式碼

修改為:

client = EvernoteClient(token=self.dev_token)
複製程式碼

關注公眾號:未聞Code

我的公眾號:未聞Code

相關文章