Facebook SDK for PHP や Opauth を 使用してFacebookのアカウントでログインする仕組みを作ろうとしていますが、scopeでemailを指定してもメールアドレスが取得できず困っています。
①「developers.facebook.com」でアプリを作成し、「App ID」「App Secret」は取得しています。(v2.4)
②下記URLのFacebookの認証画面で「メールアドレスを受け取る」と書いてあり、OKを押しますが・・・
https://www.facebook.com/dialog/oauth?client_id=【App ID】&redirect_uri=【App Secret】&scope=email
③返ってきたアクセストークンを使用して下記URLから情報を取得しますが、ユーザー名とIDしか取得できません。
https://graph.facebook.com/me?access_token=【ACCESS_TOKEN】
④Facebook SDK for PHPの設定
$config = array( 'appId' => '【App ID】', 'secret' => '【App Secret】' ); $facebook = new Facebook($config); if ($facebook->getUser()) { try { $user = $facebook->api('/me','GET'); } catch(FacebookApiException $e) { //取得に失敗したら例外をキャッチしてエラーログに出力 error_log($e->getType()); error_log($e->getMessage()); } } ・ ・ ・ if (isset($user)) { //ログイン済みでユーザー情報が取れていれば表示 echo '<pre>'; var_dump($user); echo '</pre>'; } else { //未ログインならログイン URL を取得してリンクを出力 $params = array('scope' => 'email', 'redirect_uri' => '【URL】'); $loginUrl = $facebook->getLoginUrl($params); echo '<a href="' . $loginUrl . '">Login with Facebook</a>'; }
⑤Opauthの設定
// opauth.conf.php ・ ・ ・ 'Strategy' => array( // Define strategies and their respective configs here 'Facebook' => array( 'app_id' => '【App ID】', 'app_secret' => '【App Secret】', 'scope' => array('email') ), ), ・ ・ ・
以上、的を得た質問になっているかわかりませんが、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。