Evernote API + Evernote  == Application's Online Storage !?

如果您正在開發應用服務, 需要穩定的資料儲存空間, 以及跨平台讀取資料的需求,
或許 Evernote 是一個不錯的選擇 !! 因為...
  • 資料存放在Client端無法備份, 自己架Server又需付出額外成本
  • Evernote 提供了相當豐富的 API, 可以讓開發者透過API 存取在Evernote Cloud 上使用者所存放的資料
  • 透過 Evernote 跨平台的同步機制, 又可讓資訊自動同步到各個裝置

本篇文章是敘述如何透過 Evernote API 取代應用程式所需的後端服務
Client 端的APP 則以 Evernote SDK for iOS
為範例 https://github.com/evernote/evernote-sdk-ios.git


初期設定


A. 申請一個Evernote APP, 獲得 Consumer Key and Consumer Secret

B. 申請一個Evernote Sandbox Server的帳號, 接下來APP測試都先指定到 Sandbox

C. Client端設定 ( Evernote SDK for iOS )
- Evernote Session 建立
- Evernote Login
- Check Login Status

存取資料


Evernote 的資料存取方式, 如下圖所示, 最上層是Notebook (如資料夾) 存放著多個Note
我們可以假設 Notebook = Table , 而 Note = Record 而進行資料儲存

A. 新增Notebook ( Crate a Table )

B. 新增Note ( Insert a Record )

除了 Evernote 的 Note 基本欄位可使用, 我們也可以使用 Resource, Resource Attributes 去存放更多我們想要的資訊, 如圖片, 網頁文件, XML等
參考文件連結 : http://dev.evernote.com/documentation/reference/Types.html#Struct_Note

進階功能


A. 內容縮圖
Evernote會針對每一個Note文件都會進行縮圖, 即使文件裡存有圖片, 也會一併產生一個圖檔
對有些需要顯示縮圖的APP來說十分方便
但是該圖檔並不是Public的, 需要每次 Request

B. 搜尋文件
可以透過Evernote 強大的搜尋引擎, 針對Note裡面的文字進行 Keyword 搜尋
或是透過文件的Tag, 直接搜尋某些Note
搜尋Filter 說明 : http://dev.evernote.com/documentation/reference/NoteStore.html#Struct_NoteFilter
C. 文件排序
Evernote 也提供了一些方式針對搜尋結果進行排序, 如Crate Time, 相關性, Title, 修改頻率等
參考文件 : NoteSortOrder

結論


Evernote提供了非常強大且實用的後端服務, 透過Evernote API, 我們可以新增, 修改, 搜尋, 縮圖...等
當然除此之外, 由於該文件儲存在 Evernote 的 Cloud, 這些資料還會因Evernote的同步機制,
同步到您的各個Evernote Client 如手機, 電腦等
若您不想再自己Host Server 做Database, Search Engine....
利用Evernote的Cloud做後端的Database, 或許也是不錯的選擇 !

Categories: , , , ,

Leave a Reply