-1

php-facebook sdk を使用して Facebook ログインを実装しています。しかし、Facebookで新しく作成されたアプリケーションを使用して、Facebookからユーザーのメールアドレスを取得していません。

これは、権限設定ページのスクリーンショットです

これは認証ダイアログのプレビューです

これは実際の認証ダイアログのレンダリングです

添付の画像に従って、以下の電子メールの権限設定を変更しました。認証ダイアログをプレビューすると、Facebook のダイアログに電子メールの許可が表示されます。しかし、サイト認証ダイアログの実行中に電子メールの許可が表示されず、返された電子メールも返されません。

助けてくれてありがとう。

4

2 に答える 2

2

アプリの設定でスコープ (権限) を設定します

これも参照してください:

    $facebook = new Facebook(array(
                'appId' => 'xxxxxxxxxxxxxxxxxxxxxx',
                'secret' => 'xxxxxxxxxxxxxxxxxxxxx',
            ));
    $facebookUser = $facebook->getUser();
    $fbLogoutUrl = $facebook->getLogoutUrl();
    if ($facebookUser) {
      try {
        $fbUserProfile = $facebook->api('/me');
      } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
      }
      if (!empty($fbUserProfile)) {
        $fbUserId = $fbUserProfile ['id'];
        $fbUserEmail = $fbUserProfile ['email'];
      }
    } else {
      $fbLoginUrl = $facebook->getLoginUrl(array('scope' => 'email,publish_stream,user_photos,photo_upload,offline_access'));
      header("Location: " . $fbLoginUrl);
    }

よろしく : TechNew.In

于 2012-10-17T12:42:01.280 に答える
1

これは、PHP SDK で使用するアクセス許可を構成する方法ではありません。

これらの設定は App Center 専用です (Authenticated Referrals は削除されました)。

これは、SDK 内でアクセス許可を追加する 1 つの方法です。

$params = array(
  'scope' => 'email',
  'redirect_uri' => 'https://www.myapp.com/post_login_page'
);

$loginUrl = $facebook->getLoginUrl($params);

詳細はこちらをご覧ください: http://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/
そして: https://developers.facebook.com/docs/opengraph/authentication/#referrals

于 2012-10-17T12:41:27.687 に答える