public
Fork of mcornick/laika
Description: Barks via the Yammer API and OAuth.
Homepage: http://github.com/mcornick/laika
Clone URL: git://github.com/vigetlabs/laika.git
laika / lib / laika / yammer.rb
100644 34 lines (28 sloc) 1.019 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
require 'rubygems'
require 'oauth'
require 'oauth/consumer'
require 'yaml'
 
module Laika
  class Yammer
 
    class CouldNotLoadCredentials < Exception; end
    class CouldNotPost < Exception; end
    
    attr_reader :access_token
    
    def initialize(credential_file='laika.yml')
      begin
        @credentials = YAML.load_file(credential_file)
      rescue
        raise CouldNotLoadCredentials, "Couldn't load your Yammer credentials. You may need to run laika-auth."
      end
      @consumer = OAuth::Consumer.new(@credentials[:consumer_key], @credentials[:consumer_secret], {:site => "https://www.yammer.com"})
      @access_token = OAuth::AccessToken.new(@consumer, @credentials[:access_token], @credentials[:access_token_secret])
    end
 
    def post(message)
      response = @access_token.post('/api/v1/messages', {:body => message}, {'Accept' => 'application/xml'})
      if response.is_a?(Net::HTTPCreated)
        true
      else
        raise CouldNotPost, response.body
      end
    end
 
  end
end