Не умеет создавать блокноты и переносить файлы в evernote - PullRequest
2 голосов
/ 12 апреля 2011

Я занимаюсь разработкой веб-приложения, и мне нужно создать блокнот EverNote и передать в него некоторые файлы.

Я могу аутентифицировать пользователя из EverNote, но не могу создать блокнот.Я также запутался, как передавать файлы в этой записной книжке.

Вот код аутентификации. API URL

Для создания блокнота:

noteStore.createNotebook(access_token.token, "my_notebook")

Ошибка:

An error occurred: undefined method `write' for "my_notebook":String

edit

следуя примеру Сета

      notebook = Evernote::EDAM::Type::Notebook.new()
          notebook.name = "my_notebook3"
          x= noteStore.createNotebook(access_token.token, notebook)
         note = Evernote::EDAM::Type::Note.new()
         note.notebookGuid = x.guid
         note.title="my note"
         y=noteStore.createNote(access_token.token,note)

, работая над передачей файлов в этой заметке.

1 Ответ

3 голосов
/ 12 апреля 2011

Второй параметр - это структура Notebook, а не строка. Вам нужно сделать что-то вроде:

notebook = Evernote::EDAM::Type::Notebook.new()
notebook.name = "my_notebook"
noteStore.createNotebook(access_token.token, notebook)

Записные книжки Evernote содержат только Notes, и к ним могут быть прикреплены файлы. Чтобы прикрепить файл к новой заметке, необходимо создать ресурс и включить его в заметку:

filename = # the file that you want to attach
image = File.open(filename, "rb") { |io| io.read }
hashFunc = Digest::MD5.new
hashHex = hashFunc.hexdigest(image)

data = Evernote::EDAM::Type::Data.new()
data.size = image.size
data.bodyHash = hashHex
data.body = image

resource = Evernote::EDAM::Type::Resource.new()
resource.mime = # the appropriate MIME type
resource.data = data
resource.attributes = Evernote::EDAM::Type::ResourceAttributes.new()
resource.attributes.fileName = filename

note = Evernote::EDAM::Type::Note.new()
note.title = "Title"
note.content = '<?xml version="1.0" encoding="UTF-8"?>' +
  '<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">' +
  '<en-note>' +
  '<en-media type="' + resource.mime + '" hash="' + hashHex + '"/>' +
  '</en-note>'
note.resources = [ resource ]

createdNote = noteStore.createNote(authToken, note)

Пример кода в ZIP-файле Evernote API демонстрирует это. Вы можете скачать ZIP с http://www.evernote.com/about/developer/api/.

...