2016-07-24 40 views
0

我正在通過ruby evernote-thrift API和沙箱工作。如何調用evernote結構對象來報告筆記本內的所有筆記?

我正在經歷一些解釋文檔的問題;我正在嘗試從特定筆記本中的所有筆記中檢索主題行。

要獲取筆記本的名稱,我打電話 notebooks = noteStore.listNotebooks(authToken),然後在notebooks上運行.each。根據文檔,有一個結構對象noteList,但我不知道如何使用它。

這是鏈接到的文檔區域我想利用http://www.rubydoc.info/gems/evernote-thrift/Evernote/EDAM/NoteStore/NoteList#struct_fields-instance_method

我嘗試如下,但它不返回任何東西。不幸的是,我根本不熟悉結構。

notebooks = noteStore.listNotebooks(authToken) 

notebooks.each do |notebook| 
    next if notebook.name != 'First Notebook' 

    notes = notebook.noteList 
    noteList.each do |note| 
    puts note 
    end 
end 

我得到一個無方法錯誤...這makese意義的,因爲它的一個struct我只是不知道如何利用它...

undefined method `noteList' for <Evernote::EDAM::Type::Notebook:0x007fb2041683f8> (NoMethodError) 

回答

1

我們的Ruby SDK生成的文檔令人困惑(對不起!),但我發現一般文檔更清晰:https://dev.evernote.com/doc/reference/

正如您在https://dev.evernote.com/doc/reference/Types.html#Struct_Notebook中看到的那樣,Notebook對象沒有名爲noteList的屬性。有一個名爲NoteList的結構,但那是被移除的NoteStore.findNotes返回的結果。

在筆記本中獲取筆記的標題/主題的步驟是獲取Notebook(已完成),然後將筆記本的標識傳遞到NoteStore.findNotesMetadatahttps://dev.evernote.com/doc/reference/NoteStore.html#Fn_NoteStore_findNotesMetadata)。這將返回一個NotesMetadataList,其中notes屬性是NoteMetadata的列表。該結構具有標題和GUID之類的元數據,但不包含正文。如果您想要完整的信息,您可以將GUID傳遞到NoteStore.getNotehttps://dev.evernote.com/doc/reference/NoteStore.html#Fn_NoteStore_getNote)。

+0

它是有史以來最令人困惑的文檔,即使是一般文檔:(我會繼續努力通過雖然。 – aronlmin

+0

有什麼辦法,我可以得到一個這樣的工作示例,不幸的是我在每一個回合碰撞顛簸。我卡在NotesMetadataResultSpec哪些findNotesMetadata依賴於.... :( – aronlmin

0

該API是最紅寶石的一個我見過的東西。你有我的悼念試圖跋涉通過:)

從API文檔,所有我看到掛起的Evernote :: EDAM :: Type :: Notebook類是#struct_fields和#validate,作爲就像實例方法一樣。也許這struct_fields有你在找什麼?

如果這不會引導你到任何地方,我會建議你使用類似Pry的東西來幫助你排除錯誤。我會在第二行添加binding.pry聲明,然後從那裏探索筆記本對象。

相關問題