/yammer4r

Yammer Ruby API Interface

Primary LanguageRuby

= Yammer4R

== Developers
* {Jim Patterson} <jpatterson at yammer-inc dot com>
* {Jason Stewart}
* {Peter Moran}

*Addendum
* {Tom Meier} <tom at venombytes dot com>

== Description
Yammer4R provides an object based API to query or update your Yammer account via pure Ruby.  It hides the ugly HTTP/REST code from your code.

== External Dependencies
* Ruby 1.8 (tested with 1.8.7)
* JSON gem (tested with versions: 1.4.6)
* OAuth gem (tested with versions: 0.4.4)
* RSpec gem (tested with versions: 1.1.11 - 2.4.0)

* Tested and working on Rails 3.0.3

== Usage Examples

grab the saved config file (see oauth.yml.template)

    config_path = File.join(repo_location, 'config', 'yammer_oauth.yml')

instantiate the yammer client

    yammer = Yammer::Client.new(:config => config_path)

=== Posting a message to a specific group

A quick way to find out a group id (without updating this gem to do group queries - see API doc) is to go to the Yammer page for the group and see the 'feedId' parameter in the url.

    yammer.message(:post, {:group_id => 'YourGroupId', :body => 'Some Text'})

=== Using a custom resource under 'messages'

    yammer.messages(:all, {:resource => 'messages/sent'})     #All sent messages
    yammer.messages(:all, {:resource => 'messages/received'}) #All received messages

    yammer.messages(:all, {:resource => 'messages/from_user/CHANGE_ID'}) #All messages by a certain user
    yammer.messages(:all, {:resource => 'messages/in_group/CHANGE_ID'}) #All messages in a certain group

See API doc for more possibilities, just set 'resource' accordingly to match the end point given in the api.

=== Deleting a message

    yammer.messages(:delete, {:resource => 'messages/MESSAGE_ID'})

=== Assigning a proxy address

==== standard proxy

    yammer = Yammer::Client.new(:config => config_path, :proxy => 'http://proxy.somehost.com:3128/')

==== user/pass proxy

    yammer = Yammer::Client.new(:config => config_path, :proxy => 'http://user_name:some_password@proxy.somehost.com:3128/')



== TODO

* Write specs for everything!
* Expose all the API endpoints, seriously, this is all I need now, but nothing else is exposed. See : https://www.yammer.com/api_doc.html
* Improve client.rb messages, should be modular.
* Improve how resource is set, ie: it shouldn't need /messages/ sent to a messages method. But not sure how much this API is changed. Left for now.