public
Description: Barks via the Yammer API and OAuth.
Homepage: http://viget.rubyforge.org/laika/
Clone URL: git://github.com/vigetlabs/laika.git
laika / bin / laika-auth
100755 38 lines (34 sloc) 1.522 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env ruby
 
require 'rubygems'
require 'oauth/consumer'
require 'yaml'
 
puts "Please enter your client key, then hit Return."
consumer_key = gets.chomp
puts "Please enter your client secret, then hit Return."
consumer_secret = gets.chomp
 
begin
  consumer = OAuth::Consumer.new consumer_key, consumer_secret, { :site => "https://www.yammer.com" }
  request_token = consumer.get_request_token
  puts "Please go to:\n#{request_token.authorize_url}\nin your browser to authorize your application."
  puts "You should receive a four-character security code.\nEnter it and hit Return here when you are done."
  oauth_verifier = gets.chomp
  response = consumer.token_request(consumer.http_method,
                                   (consumer.access_token_url? ? consumer.access_token_url : consumer.access_token_path),
                                    request_token, {}, :oauth_verifier => oauth_verifier)
  access_token = OAuth::AccessToken.new(consumer,response[:oauth_token],response[:oauth_token_secret])
  credentials = {
    :consumer_key => consumer.key,
    :consumer_secret => consumer.secret,
    :access_token => access_token.token,
    :access_token_secret => access_token.secret
  }
  begin
    File.open('laika.yml', 'w') { |file| YAML.dump(credentials, file) }
    File.chmod(0600, 'laika.yml')
    puts "Your credentials have been saved."
  rescue
    puts "Couldn't save your credentials."
  end
rescue
  puts "Couldn't authorize with Yammer. Did you enter your client credentials correctly?"
end