A Ruby client for Evernote
Ruby
Latest commit e414ab9 Jun 15, 2012 @cgs update readme
Permalink
Failed to load latest commit information.
lib version bump Jun 15, 2012
spec fix two failing tests Jun 28, 2011
vendor/gen-rb Upgrade to Evernote API SDK 1.21 for ruby Jun 6, 2012
.gitignore ignores Jan 30, 2010
LICENSE get rid of Jeweler, add contributors Jun 29, 2011
README.mkd update readme Jun 15, 2012
Rakefile get rid of Jeweler, add contributors Jun 29, 2011
evernote.gemspec fixes #10 Jan 23, 2012
example.rb

README.mkd

evernote

This gem is a high level wrapper around Evernote's Thrift-generated ruby code. It bundles up Evernote's thrift-generated code and creates some simple wrapper classes.

setup

Get a "Client application" API key from Evernote (http://www.evernote.com/about/developer/api/#key), which gives you a "consumer_key" and "consumer_secret" (note that a "web application" API key uses OAuth to authenticate and will not work). Put the key in a YML file or any other place you put configuration information. Also, get yourself a username and password on both their sandbox system (http://sandbox.evernote.com) and live system. You will be using sandbox for testing.

usage

This script is also located in /example.rb

require 'evernote'

user_store_url = "https://sandbox.evernote.com/edam/user"

config = {
   :username => 'YOUR_USERNAME',
   :password => 'YOUR_PASSWORD',
   :consumer_key => 'YOUR_CONSUMER_KEY_FROM_EVERNOTE',
   :consumer_secret => 'YOUR_CONSUMER_SECRECT_FROM_EVERNOTE'
         }

user_store = Evernote::UserStore.new(user_store_url, config)

auth_result = user_store.authenticate
user = auth_result.user
auth_token = auth_result.authenticationToken
puts "Authentication was successful for #{user.username}"
puts "Authentication token = #{auth_token}"

Once you've authenticated, you could do something like list all of your notebooks:

note_store_url = "http://sandbox.evernote.com/edam/note/#{user.shardId}"
note_store = Evernote::NoteStore.new(note_store_url)

notebooks = note_store.listNotebooks(auth_token)
puts "Found #{notebooks.size} notebooks:"
default_notebook = notebooks[0]
notebooks.each { |notebook| puts "  * #{notebook.name}"}

The evernote API can be viewed at http://www.evernote.com/about/developer/api/ref/

If the vendored code is out of date and you get an error indicating so, feel free to create an issue at http://github.com/cgs/evernote/issues

TODO

  • OAuth support - will gladly accept a patch for this!

contributors

Thanks to the following peeps for helping out:

  • Peter Mangiafico (peetucket)
  • d1
  • Mikhail Zelenin (MioGreen)
  • Jimmy Zimmerman (jimmyz)
  • Buck Doyle (backspace)
  • Philippe Creux (pcreux)

Copyright

Copyright (c) 2011 Chris Sepic. See LICENSE for details.