如何调用evernote结构对象来报告笔记本中的所有笔记?

时间:2016-07-24 20:04:30

标签: ruby evernote

我正在研究ruby evernote-thrift API和沙箱。

我遇到了解释文档的一些问题;我试图从特定笔记本内的所有笔记中检索主题行。

获取我打电话的笔记本的名称 notebooks = noteStore.listNotebooks(authToken)然后在.each上运行notebooks。根据文档,有一个名为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

我得到一个没有方法的错误...这是有道理的,因为它的结构我只是不知道如何利用它......

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

2 个答案:

答案 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.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)。

答案 1 :(得分:0)

那个API是我见过的最少Ruby的东西之一。你对我试图跋涉:)表示哀悼。

从API文档来看,就我所看到的那样,Evernote :: EDAM :: Type :: Notebook类的所有内容都是#struct_fields和#validate,就实例方法而言。也许struct_fields有你想要的东西?

如果这不能引导您到任何地方,我建议您使用像Pry这样的东西来帮助您排除错误。我在第二行放了binding.pry语句,然后从那里探索笔记本对象。