Skip to content
Facebook Open Graph Library
Ruby
Find file
Pull request Compare This branch is 2 commits ahead, 87 commits behind mmangino:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
spec
.gemtest
.gitignore
.rspec
COPYING.rdoc
Gemfile
Rakefile
Readme.md
Todo.txt
init.rb
mogli.gemspec

Readme.md

The first version of a Facebook Open Graph Library for Ruby. Require HTTParty to function.

For documentation on the Open Graph Library, see: http://developers.facebook.com/docs/api

Quick Start:

Add config.gem "mogli" to environment.rb

For Rails: create a controller like the following:

class OauthController < ApplicationController

def new session[:at]=nil redirect_to authenticator.authorize_url(:scope => 'publish_stream', :display => 'page') end

def create
mogli_client = Mogli::Client.create_from_code_and_authenticator(params[:code],authenticator) session[:at]=mogli_client.access_token redirect_to "/" end

def index redirect_to new_oauth_path and return unless session[:at] user = Mogli::User.find("me",Mogli::Client.new(session[:at])) @user = user @posts = user.posts end

def authenticator @authenticator ||= Mogli::Authenticator.new('client_id', 'secret', oauth_callback_url) end end

with routes:

map.resource :oauth, :controller=>"oauth" map.root :controller=>"oauth" map.oauth_callback "/oauth/create", :controller=>"oauth", :action=>"create"

Viewing / should redirect you to the login page, and then redirect back to your app to show your recent posts

From the console, you can create a client with the stored access token:

require "rubygems" require "mogli" client = Mogli::Client.new("your_access_token")

You can now fetch users with the client, for example:

myself = Mogli::User.find("me",client)

or

mikemangino = Mogli::User.find(12451752,client)

When you fetch yourself, you can look at your posts and other information:

myself.posts

You can also fetch other objects by ID, for example:

album = Mogli::Album.find(99394368305) album.photos

If the object requires a client, just pass one in:

album = Mogli::Album.find(99394368305,client) album.photos

You can also upload photos using httmultiparty: facebook_access_token = "..." client = Mogli::Client.new(facebook_access_token) client.post("me/photos", nil, {:source => File.open("myphoto.jpg")})

Contributing

1) fork the repo 2) Add tests for a missing method, such as client.post(post_id) 3) implement missing method 4) send me a pull request.

Feel free to add missing associations if you see them as well. My goal is to get a readonly API in place first, and then move on to the read/write API

Mike

Something went wrong with that request. Please try again.