Project

evernote

0.06
No commit activity in last 3 years
No release in over 3 years
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.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

>= 0
>= 0

Runtime

 Project Readme

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.