survival/mogli
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
DO NOT DELETE THIS REPO!!! It is currently being used by maloca as the original gem was causing 'This token has expired' errors when used by the Facebooker2 gem. Ketan Patel - 5th April 2017 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