Instapaper is a ruby wrapper for interacting with Instapaper's Full Developer API. Note that access to the Full API is restricted to Instapaper subscribers only.
gem install instapaper
Instapaper offers full support for all methods exposed through the Full API. Note that Instapaer does not support the request-token/authorize workflow. To obtain an access token, use the access_token
method.
Instapaper.configure do |config|
config.consumer_key = YOUR_CONSUMER_KEY
config.consumer_secret = YOUR_CONSUMER_SECRET
config.oauth_token = YOUR_OAUTH_TOKEN
config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
end
To obtain an access token via xAuth:
Instapaper.access_token(username, password)
You can also verify credentials once you have received tokens:
Instapaper.verify_credentials
Retrieve a list of bookmarks:
Instapaper.bookmarks
Add a new bookmark:
Instapaper.add_bookmark('http://someurl.com', :title => 'This is the title', :description => 'This is the description')
Remove a bookmark:
Instapaper.delete_bookmark(bookmark_id)
Update read progress:
Instapaper.update_read_progress(bookmark_id, 0.5)
Star/Un-star a bookmark:
Instapaper.star(bookmark_id)
Instapaper.unstar(bookmark_id)
Archive/Un-archive a bookmark:
Instapaper.archive(bookmark_id)
Instapaper.unarchive(bookmark_id)
Move a bookmark to a folder:
Instapaper.move(bookmark_id, folder_id)
Obtain the text of a bookmark:
Instapaper.text(bookmark_id)
To obtain the list of folders:
Instapaper.folders
You can add by passing a name:
Instapaper.add_folder('eventmachine')
And remove folders by referencing a folder by it's id.
Instapaper.delete_folder(folder_id)
Lastly, the folders can be reordered:
Instapaper.set_order(['folder_id1:2','folder_id2:1'])
Users without an Instapaper Subscription may only invoke the following calls:
Instapaper.access_token
Instapaper.verify_credentials
Instapaper.add_bookmark
Instapaper.folders
http://rdoc.info/gems/instapaper
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so I don't break it in a future version unintentionally.
- Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
- Send me a pull request. Bonus points for topic branches.
Copyright (c) 2011 Steve Agalloco. See LICENSE for details.