0.0
No commit activity in last 3 years
No release in over 3 years
Ruby client for WordPress.com REST API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

>= 0

Runtime

>= 0
>= 0
 Project Readme

Wordpress::Com

Library to access WordPress.com's REST API

https://developer.wordpress.com/

Installation

Add this line to your application's Gemfile:

gem 'wordpress-com'

And then execute:

$ bundle

Or install it yourself as:

$ gem install wordpress-com

Usage

To authorize your token, register your application at https://developers.wordpress.com/. Make sure that redirect URL is yours - user will be redirected there, and it has to match. Then do this:

require 'wordpress-com'
wpc = WordpressCom.new(client_id, client_secret)
url = wpc.authorize(redirect_uri)
# or: wpc.authorize(redirect_uri, :blog => 'http://foobar.wordpress.com/')

Make your user redirect to the returned url. User will be redirected to the redirect_url and given a code GET parameter. Use this parameter to obtain a token:

wpc = WordpressCom.new(client_id, client_secret)
wpc.get_token(code, redirect_uri)

You can then save complete authorization data, store it somewhere, and reuse it later on. The authorization data is JSON and YAML safe.

wordpress_auth = wpc.serialize

wpc = WordPressCom.deserialize(wordpress_auth)

If you are writing a desktop or headless application and want to just have the authorization data without any hassle, you can use provided examples/authorizer.rb Sinatra app. Set your redirect URL to `http://localhost:4567/' and run the app:

$ cd examples/
$ ruby authorizer.rb

Browse to http://localhost:4567/, follow the instructions, and after successfully authorizing you will see serialized authentication data as a YAML snippet.

To actually call the API, use .request, .get, .post, .put, and .delete methods of the WordPressCom instance, or use the token attribute to get to OAuth2 token itself:

wpc.post('posts/new', :body => {
  :title => "Hello, World!",
  :content => "Lorem ipsum dolor sit amet",
  :tags => 'foo,bar,xyzzy'})

The request methods are automatically prefixed with /rest/v1/sites/$site_id/. To get rid of the /sites/$site_id/ part, provide :root_path => true keyword parameter.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request