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)でお願いします。