Edited at

evernote-sdk-rubyを使ってEvernoteのノートを検索する

More than 5 years have passed since last update.

EvernoteのAPIはthriftなのでWebAPIとはところどころ使い勝手が違う。

基本はこちらのサンプルから。

authTokenは以下から取得

https://www.evernote.com/api/DeveloperToken.action


evernote_search.rb

authToken = "THE TOKEN YOU'VE GOT"

evernoteHost = "sandbox.evernote.com"

# UserStoreサービスのクライアントを生成
userStoreUrl = "https://#{evernoteHost}/edam/user"
userStoreTransport = Thrift::HTTPClientTransport.new(userStoreUrl)
userStoreProtocol = Thrift::BinaryProtocol.new(userStoreTransport)
userStore = Evernote::EDAM::UserStore::UserStore::Client.new(userStoreProtocol)

# NoteStoreサービスのクライアントを生成
noteStoreUrl = userStore.getNoteStoreUrl(authToken)
noteStoreTransport = Thrift::HTTPClientTransport.new(noteStoreUrl)
noteStoreProtocol = Thrift::BinaryProtocol.new(noteStoreTransport)
noteStore = Evernote::EDAM::NoteStore::NoteStore::Client.new(noteStoreProtocol)

# 検索条件となるfilterを設定
# 'こんにちは'を含む更新された順
filter = Evernote::EDAM::NoteStore::NoteFilter.new
filter.word = 'こんにちは'
filter.order = Evernote::EDAM::Type::NoteSortOrder::UPDATED

# filterを使って検索実行
noteList = noteStore.findNotes(authToken, filter, 0, 10)


こうするとEvernote::EDAM::NoteStore::NoteListのオブジェクトが取得できて、noteList.notesの中に検索の結果が入ってくる。

evernote-sdk-rubyEvernoteAPIに合わせるためかキャメルケースになってるのがrubyとしては独特。

今回はこの書き方に則ってみた。

Evernoteの開発者向けドキュメントは日本語版英語版で書かれている範囲が違ったりするので両方見ておくといいかも。