我正在研究ruby evernote-thrift API和沙箱。
我遇到了解释文档的一些问题;我试图从特定笔记本内的所有笔记中检索主题行。
获取我打电话的笔记本的名称
notebooks = noteStore.listNotebooks(authToken)
然后在.each
上运行notebooks
。根据文档,有一个名为noteList
的结构对象,但我无法弄清楚如何使用它。
我的尝试如下,但它没有返回任何东西。不幸的是,我根本不熟悉结构。
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
我得到一个没有方法的错误...这是有道理的,因为它的结构我只是不知道如何利用它......
undefined method `noteList' for <Evernote::EDAM::Type::Notebook:0x007fb2041683f8> (NoMethodError)
答案 0 :(得分: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
(你已经完成),然后将笔记本的guid传递到NoteStore.findNotesMetadata
(https://dev.evernote.com/doc/reference/NoteStore.html#Fn_NoteStore_findNotesMetadata )。这会返回NotesMetadataList
,其notes
属性是NoteMetadata
的列表。此结构具有标题和GUID等元数据,但不包含正文。如果您需要完整信息,可以将GUID传递到NoteStore.getNote
(https://dev.evernote.com/doc/reference/NoteStore.html#Fn_NoteStore_getNote)。
答案 1 :(得分:0)
那个API是我见过的最少Ruby的东西之一。你对我试图跋涉:)表示哀悼。
从API文档来看,就我所看到的那样,Evernote :: EDAM :: Type :: Notebook类的所有内容都是#struct_fields和#validate,就实例方法而言。也许struct_fields有你想要的东西?
如果这不能引导您到任何地方,我建议您使用像Pry这样的东西来帮助您排除错误。我在第二行放了binding.pry
语句,然后从那里探索笔记本对象。