ruby-on-rails - 无法在 Evernote 中创建笔记本和传输文件

标签 ruby-on-rails ruby evernote

我正在开发一个 Web 应用程序,我需要创建一个 EverNote 笔记本并在其中传输一些文件。

我能够从 EverNote 验证用户身份,但无法创建笔记本。我也很困惑如何在该笔记本中传输文件。

这是验证码。 API URL

创建笔记本:

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

错误:

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

编辑

跟随赛斯的脚步

      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)

在该笔记中处理文件传输。

最佳答案

第二个参数是Notebook结构,而不是字符串。您需要执行以下操作:

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

Evernote 笔记本仅包含便笺,并且便笺可以附加文件。要将文件附加到新笔记,您需要创建一个资源并将其包含在笔记中:

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)

Evernote API ZIP 文件中的示例代码演示了这一点。您可以从http://www.evernote.com/about/developer/api/下载ZIP .

关于ruby-on-rails - 无法在 Evernote 中创建笔记本和传输文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5631055/

相关文章:

ruby - 匹配未转义的平衡定界符对

ruby-on-rails - ElasticSearch 搜索多种类型

ruby - ruby 中 += 的方法符号是什么?

windows - 我正在寻找一个将多个文本文件的名称附加到每个文件的第一行的批处理脚本

markdown - 使用 Markdown [POSTACH.IO] 制作 "Read More"发布链接

ruby-on-rails - 更改 ruby​​ on rails 中的默认日期格式?

mysql - Rails LEFT JOIN 搜索和 json

ruby-on-rails - 在 Heroku 上强制执行文件上传大小?

ruby-on-rails - Rails 3.1应用服务器启动报错

ios - 使用 iOS Evernote API 在 EDAMNote 中嵌入不可见元数据