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-rubyはEvernoteAPIに合わせるためかキャメルケースになってるのがrubyとしては独特。
今回はこの書き方に則ってみた。