Yammer Ruby API Interface
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 6 commits ahead of jpatterson:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib
spec
.gitignore
README
Rakefile
TODO
example.rb
oauth.yml.template
yammer4r.gemspec

README

= 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.