Facebookでアプリ登録まず初めに、Facebookでのログインを実現するには、Facebookでアプリ登録をする必要があります。開発者向けFacebookヘッダ右上の「アプリを作成」ボタンを押して、アプリ名など必要事項を入力します。secretを取得し、控えておきます。アプリに接続可能なドメイン「アプリドメイン」を登録します。※Facebookアプリ登録には、Facebookでの電話認証済み、または、クレジットカード認証済みであることが前提です。必要に応じて、アプリのカテゴリ、規約URL、プライバシーポリシーURLやアプリアイコン画像などを設定しておくとよいでしょう。Opauthパッケージのインストールと設定Opauthパッケージのインストールはcomposerで実行します。FuelPHPがインストールされているルートディレクトリに移動して、composer.jsonを開いて、以下の内容を記述します。"2.0"},次に、composerをコマンドを実行して、パッケージをダウンロードします。update「/fuel/app/config/config.php」を開き、authパッケージを読み込むように設定を編集します。array('auth','orm',),),...「/fuel/packages/auth/config/opauth.php」を「/fuel/app/config/opauth.php」にコピーし、以下の個所を編集します。secret)'),),インストールと設定は以上です。次にログイン処理の一連の流れを実装してみます。任意のコントローラauthにログインアクションとなるloginを用意します。null){Response::redirect_back();}Auth_Opauth::forge();}処理に引数「$provider」は必須で、今回は「facebook」を指定します。Facebookにログインするパスは「http://helog.jp/auth/login/facebook/」となります。Auth_Opauthがプロバイダを解釈し、Facebookのログイン画面へと移動します。Facebookにログインしていない場合、Facebookへのログインが求められます。このFacebookアプリへのアクセスが初めての場合、Facebookユーザ情報へのアクセス許可を求める画面が表示されます。Facebookでの一連の処理を終えたら、コールバックで「http://helog.jp/auth/callback/」に結果が返されます。「callback」はデフォルトですが、設定でコールバック先を変更することも可能です。以下、コールバック後の判定処理です。認証失敗}}Facebook側でのログインが成功した場合に、関数「login_or_register()」でローカル認証にトライし、その結果「$status」を見ています。「$status」は、ローカルユーザとしてログイン済みか否か、また、ローカルユーザとFacebookユーザは関連付けられているかで分岐しています。この時点で関連付けられていれば、Facebookアカウントを利用したログインに成功したということになります。まとめ今回、Opauthを利用したFuelPHPベースのFacebookログイン機能の構築にチャレンジしました。実際、ログインに成功しましたが、不安要素が1点あります。APIが日々バージョンアップしているのに対して、Opauthが4年ほど更新されていない事です。現時点では問題ないかもしれませんが、これから先のFacebookのアップデートについていけるかが不安です。実際に今回の検証の中でも、他のブログを参考にしたときに、ログイン後にユーザのメールアドレスが取得できずにパッケージを手動で調整するといった事例も見受けられました。SDKが公開され、アプリ開発環境も整理されつつあるので、これらも考慮するとあえてOpauthは採用しないというのも選択肢の一つかもしれません。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。inc.Profileサイト「helog」は私がWeb制作に携わるなかでの経験を中心に記しています。前にも発生したんだよなぁ。」といった無駄な時間を省くことを目的に書き始めました。「へ」の「ログ」です。個人的な技術メモのようなものですが、みなさんの何か役に立つことがあればこの上ないです。