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
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request