2011-04-12 60 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

相關問題