今回は、Ruby on RailsでfacebookのOAuth認証を実装する手順をご紹介したいと思います。

OAuth認証といえば何だか小難しい印象がありますが、RailsにおけるOAuth認証の実装は驚くほど簡単です。

今回は例として、facebookのOAuth認証を実装する手順を5つのステップに分けてご紹介します。

※以下の手順はfacebookアカウントを登録済みのものとします。



facebookの設定(facebookにアプリケーションを登録する)

STEP1:本人認証を行う

携帯電話のメールアドレス、または、クレジットカードにて本人認証を行います。

※以下、携帯電話のメールアドレスで認証を行う手順を記載します

(1) http://www.facebook.com/docs/guides/web#!/developers/createapp.php

(2) 「携帯認証」のリンクを押下(登録画面がポップアップで表示されます)

(3) 携帯電話のメールアドレスを入力する

(4) 携帯電話に届いた確認用コードを入力する

(5) 本人認証完了

※2011/03/02現在、完了メッセージと共に再び②の入力フォームが表示されますが、①のウィンドウに戻り、画面を更新すると次のステップへ進むことができます。

STEP2:アプリケーションを登録する

(1) アプリケーション名を入力し、利用規約に同意した上で「アプリケーションを作成」を押下します。


(2) 画像認証を行います。


(3) アプリケーションの情報を入力します。


(※WEB Site > Site URL に「http://localhost:3000/」を記載するだけでOKです)


(4) アプリケーション登録完了

※マイアプリ画面内に表示されている「アプリID」「アプリの秘訣(※facebook側の誤訳な気がしますが、以下これで通します)」がfacebookアプリケーション開発時に必要となります。



Railsアプリの作成

STEP3:必要なRails環境

<実行環境>

今回のサンプルは以下の環境で作成しました。必要なgemが入っていない場合はインストールしてください

ruby:1.8.7
rails:2.3.10(sudo gem install rails -v 2.3.10)
oauth:0.4.4(sudo gem install oauth -v 0.4.4)
facebook_oauth:0.2.2(sudo gem install facebook_oauth -v 0.2.2)

STEP4:Railsアプリの作成

(1) 新規Railsプロジェクトを作成します

rails facebook

(2) RAILS_ROOTに移動し、OAuth認証用のControllerを作成します

script/generate controller Users index callback

(3) 各ファイルを下記のとおりに編集します

app/controllers/users_controller.rb

class UsersController < ApplicationController

  CALLBACK_URL    = "http://localhost:3000/users/callback"
  CONSUMER_KEY    = "アプリID"
  CONSUMER_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

app/views/users/index.html.erb

<%= link_to 'OAuth認証', '/users/oauth' %>

app/views/users/callback.html.erb

<%= @client.me.info %>

STEP5:Railsアプリを動かす

(1) サーバーの起動

script/server

(2) ブラウザで「http://localhost:3000/users」にアクセス

(3) 「OAuth認証」リンクを押下

(4) 未認証の場合、facebookサイトにて認証画面が表示されるので、「許可」を押下します

(5) CALLBACK先(/users/callback)にリダイレクトされます

(6) 「/usrs/callback」ページにてユーザー情報が表示されれば認証成功です。



さいごに。

以上となりますが、いかがでしょうか。意外とハードルは高くないという印象を受けていただけたでしょうか。

ちなみに、TwitterのOAuth認証実装については当サイト内の記事『rubyでOAuthを使ってみる』が参考になります。

コメント (0)

ブックマークに追加する

この記事にコメントをする
ニックネーム:
メールアドレス:
URL:


.
web開発ならAppirits
Rubyでのwebシステム開発は
実績豊富なAppiritsにお任せ下さい
iPhone開発
iPhone開発は
Appiritsにお任せ下さい
ブラウザゲーム エインヘリアル
ブラウザゲーム「エインへリアル」
サービス中
オープンソースECパッケージ エレコマ
オープンソースECパッケージ
「エレコマ」
Google Analytics徹底活用スクール
レベルに合わせた
実用的な活用スキルを徹底指導。
好評定期開催中です!

プロフィール

はる(fujita)
はる(fujita)
おまえのハートにピッ!ピカチュー!
どうも、シビれる爽快感でおなじみの fujita です。

最近チェックした記事

最新記事

アーカイブ

アクセスランキング

AppiritsのWebソリューション
Ruby on railsの開発ならAppirits
株式会社ケイビーエムジェイ