2012.08.18

Ruby on Rails で Facebook の OAuth を使う

Ruby on RailsでfacebookのOAuth認証を実装する を参考にした。
facebook_oauth プラグインを使ってラクしたものだ。

gem のインストール
$ sugo gem install oauth
$ sugo gem install oauth2
$ sudo gem install facebook_oauth

バージョンを指定せずに最新をインストールして大丈夫だった。
oauth v0.4.6
oauth2 0.8.0
facebook_oauth 0.3.0

ソースコードの編集
$ rails generate controller Users index callback

– controller/users_controller.rb

class UsersController < ApplicationController
   CALLBACK_URL = "Facebook Developers の Website with Facebook Login の Site URL"
   CONSUMER_KEY = "Facebook Developers の App ID"
   CONSUMER_SECRET = "Facebook Developers の App Secret"
   
   def index
   end
   
   def oauth
     client = FacebookOAuth::Client.new(
       :application_id => CONSUMER_KEY,
       :application_secret => CONSUMER_SECRET,
       :callback => CALLBACK_URL
     )
     redirect_to client.authorize_url
   end

  def callback
     @client = FacebookOAuth::Client.new(
         :application_id => CONSUMER_KEY,
         :application_secret => CONSUMER_SECRET,
         :callback => CALLBACK_URL
      )
      @client.authorize(:code => params[:code])
   end
end

– views/users/index.html.erb
<%= link_to 'OAuth認証', '/users/oauth' %>

– views/users/callback.html.erb
<%= @client.me.info %>

以上は書いてあったとおり。

追加で以下の作業が必要。
– config/routes.rb

get "users/oauth"

Routing Error : No route matches [GET] “/users/oauth” が出たので追加してみた。

– Gemfile

gem 'facebook_oauth'

NameError : uninitialized constant UsersController::FacebookOAuth が出たので追加してみた。
ただ、facebook_oauth が Heroku にないのか、Heroku の git にあげようとするとエラーになるという問題が・・・


2012.08.18, 19:46 / OAuth, Rails
Ruby on Rails で Facebook の OAuth を使う はコメントを受け付けていません

Comments are closed.