2011-04-12 85 views
2

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

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

这里是验证码。 API URL

为了创建一个笔记本:

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

错误:

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

编辑

以下Seth的带领

 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) 

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

回答

3

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

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

Evernote笔记本电脑只包含Notes,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) 

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

+1

以及如何在该笔记本中传输文件?我需要传输多个文件。 – 2011-04-12 08:21:18

+0

该op特意说他想要传输多个文件。这仅适用于作为内容嵌入的附件。 – saneshark 2014-05-29 00:54:26

相关问题