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