2016-07-24 5 views
0

Ich arbeite durch die Ruby Evernote-Spar-API und Sandbox.Wie rufe ich das evernote-struct-Objekt auf, um alle Notizen in einem Notizbuch zu melden?

Ich habe einige Probleme beim Interpretieren der Dokumente; Ich versuche, die Betreffzeile von allen Notizen in einem bestimmten Notizbuch abzurufen.

Um den Namen des Notebooks zu erhalten, rufen Sie notebooks = noteStore.listNotebooks(authToken) und dann .each auf notebooks. Laut den Dokumenten gibt es ein Strukturobjekt namens noteList, aber ich kann nicht herausfinden, wie man es benutzt.

dies ist der Link zu dem Bereich docs ich http://www.rubydoc.info/gems/evernote-thrift/Evernote/EDAM/NoteStore/NoteList#struct_fields-instance_method

mein Versuch zu nutzen, ich versuche, ist wie folgt, aber es ist nicht alles zurück. Leider bin ich mit Strukturen überhaupt nicht vertraut.

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 

Ich erhalte eine keine Methode Fehler ... das makese Sinn, denn es ist ein struct Ich weiß nur nicht, wie es zu nutzen ...

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

Antwort

1

Die generierten Dokumente für unser Ruby SDK sind verwirrend (sorry!), Aber ich finde die allgemeinen Dokumente viel klarer: https://dev.evernote.com/doc/reference/. Wie Sie in https://dev.evernote.com/doc/reference/Types.html#Struct_Notebook sehen können, hat das Notebook Objekt kein Attribut namens noteList. Es gibt eine Struktur namens NoteList, aber das war, was die entfernte NoteStore.findNotes zurückgegeben.

Das Verfahren für das Erhalten des Titels/Themen der Noten in einem Notebook ist die Notebook (was Sie getan haben) zu erhalten, dann den in NoteStore.findNotesMetadata guid Notebook passieren (https://dev.evernote.com/doc/reference/NoteStore.html#Fn_NoteStore_findNotesMetadata). Dies gibt eine NotesMetadataList zurück, die ein notes Attribut aufweist, das eine Liste von NoteMetadata ist. Diese Struktur hat Metadaten wie Titel und GUID, aber nicht den Rumpf. Wenn Sie die vollständigen Informationen wünschen, übergeben Sie die GUID an NoteStore.getNote (https://dev.evernote.com/doc/reference/NoteStore.html#Fn_NoteStore_getNote).

+0

es ist ernsthaft die verwirrendste Dokumentation aller Zeiten, sogar die allgemeine Dokumentation :(Ich werde weiter durch drängen. – aronlmin

+0

gibt es keine Möglichkeit, ich kann ein funktionierendes Beispiel dafür bekommen, leider bin ich Beulen an jeder Ecke. Jetzt Ich stecke bei NotesMetadataResultSpec fest, auf die findNotesMetadata angewiesen ist .... :( – aronlmin

0

Das API eine der am wenigsten Ruby Dinge, die ich je gesehen habe. Sie haben mein Beileid für den Versuch, durch das zu stapfen :)

Von den API-Dokumenten, alles, was ich sehe, dass hängt von dieser Evernote :: EDAM :: Type :: Notebook-Klasse sind #struct_fields und #validate, als so weit wie Instanzmethoden gehen. Vielleicht hat struct_fields was Sie suchen?

Wenn das Sie nirgends hinführt, würde ich vorschlagen, etwas wie Pry zu verwenden, um Ihnen zu helfen, den Fehler zu beheben. Ich würde eine binding.pry Anweisung in die zweite Zeile setzen und dann die Notizbücher von dort erforschen.

Verwandte Themen