CakePHP2でFacebookのPHP SDKを導入してログインとか出来るようにする

CakePHP2でFacebookログインする方法で少しつまずいたので共有します。

まずFacebookのPHP SDKをダウンロードしましょう。
Githubはこちら

ダウンロードしたものを cake/to/path/app/Vendor にフォルダをそのまま入れましょう。

↑こんな感じに設定しましょう。

そして、FacebookControllerを作成しましょう。(Controllerであればなんでもよい)
僕の場合はAppControllerに書くことによってどのControllerでもFacebookSDKが叩けるようにしています。

以下のコードを記入しましょう。

public $facebook;

    // Facebook APIをControllerのどこでも叩けるようにする
    function beforeFilter() {
        App::import('Vendor', 'facebook/src/facebook');
        $this->facebook = new Facebook( array(
                        'appId' => 'APPID',
                        'secret' => 'SECRET',
                        'cookie' => true 
                        ));
    }

OAuth接続するコードは以下です。

// Facebookで接続するときにOAuthを通す
    public function authFacebook() {
        $login_url = $this->facebook->getLoginUrl(array('scope' => 'email,publish_stream,user_birthday,user_education_history,user_likes'));
        $this->redirect($login_url);
    }

‘scope’の部分に求める権限を書きます。
Facebookの権限一覧はこちら

あとはFacebookログインしたい場所でさきほど定義したauthFacebook()を実行すればFacebookログイン出来るようになります。

また権限をもらいたい場合はFacebook Developerのアプリ内で、設定する必要があります。
http://developers.facebook.com/にアクセスし、アプリ内→アカウント権限で以下のように好きな権限を設定することで僕は実装しています。(正しいかわかりません。間違ってるよ!って場合は教えてほしいです。)

これでFacebookログインを実装することが出来ました。
何か質問等ありましたら以下コメント欄、またはリプライ(@DAI199)でお願いします。

tagamidaiki.comの著者が教えるプログラミングスクール – class Tech(クラステック)

更新情報はFacebookページで!

ブログの更新、読んで役立つ他ブログの記事などを更新しています。




関連のある記事