2011-04-12 5 views
2

웹 응용 프로그램을 개발 중이며 EverNote 노트북을 만들고 파일을 일부 전송해야합니다.evernote에서 노트북을 만들고 파일을 전송할 수 없습니다.

EverNote에서 사용자를 인증 할 수는 있지만 노트북을 만들 수 없습니다. 나는 또한 노트북에서 파일을 전송하는 방법을 혼란스러워합니다.

다음은 인증 코드입니다.

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

오류 : 노트북 만들기위한 API URL

세스 년대 다음

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) 

해당 메모의 파일 전송 작업.

답변

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) 

에버 노트 API의 ZIP 파일의 샘플 코드는이 방법을 보여줍니다. http://www.evernote.com/about/developer/api/에서 ZIP을 다운로드 할 수 있습니다.

+1

어떻게 노트북에서 파일을 전송할 수 있습니까? 여러 파일을 전송해야합니다. –

+0

op는 특별히 여러 개의 파일을 전송하려고한다고 말했습니다. 이는 콘텐츠로 포함 된 첨부 파일에 대해서만 작동합니다. – saneshark

관련 문제