Skip to content

le0pard/omniauth-yammer

Repository files navigation

OmniAuth Yammer

Build Status Code Climate

This gem contains the Yammer strategy for OmniAuth 1.0.

Supports the OAuth 2.0 server-side flow. Read the Yammer docs for more details: https://developer.yammer.com/authentication/#a-oauth2

Installing

Add to your Gemfile:

gem 'omniauth'
gem 'omniauth-yammer'

or even:

gem 'omniauth'
gem 'omniauth-yammer', :github => 'le0pard/omniauth-yammer'

Then bundle install.

Usage

OmniAuth::Strategies::Yammer is simply a Rack middleware. Read the OmniAuth 1.0 docs for detailed instructions: https://github.com/intridea/omniauth.

Here's a quick example, adding the middleware to a Rails app in config/initializers/omniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :yammer, ENV['YAMMER_KEY'], ENV['YAMMER_SECRET']
end

For changing default domain in gem (for dev or testing purpose) use YAMMER_DOMAIN environment variable:

ENV['YAMMER_DOMAIN'] = 'https://staging.yammer.com'

Devise

Add this line to devise config:

config.omniauth :yammer, "Consumer key", "Consumer secret"

If you have this error:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

Then you can fix this by setting valid cert:

wget http://www.cacert.org/certs/root.crt
cat root.crt >> lib/ca-bundle.crt

and edit devise config:

config.omniauth :yammer, "Consumer key", "Consumer secret", {:client_options => {:ssl => {:ca_file => "#{Rails.root}/lib/ca-bundle.crt" }}}

Contributing

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