1

FacebookPHPSDKからユーザーのメールIDを取得します

以下のコードで試してみました

初め

$user_profile = $facebook->api('/me');  // or $facebook->api('/me?fields=email')
print_r($user_profile);

2番

$user = $facebook->getUser();
$url = "https://api.facebook.com/method/fql.query";
    $url .= "?access_token=" . $access_token;
    $url .= "&query=SELECT email FROM user WHERE uid={$user}";
    $userData = simplexml_load_file($url);
    $userEmail = $userData->user->email;
    print_r($userEmail);

第3

    $user = $facebook->getUser();
$fql    =   "select name, hometown_location, sex, pic_square, email from user where uid='$user'";
        $param  =   array(
           'method'     => 'fql.query',
            'query'     => $fql,
            'access_token' =>$access_token ,
          'callback'    => ''
        );

        $fqlResult2   =   $facebook->api($param);

    print_r($fqlResult2);

これらのいずれも、ログインユーザーの電子メールIDを取得しません。それを取得する方法は?

4

3 に答える 3

2

FBML(これはまもなく歴史になります)

<fb:login-button autologoutlink="true" perms="email"></fb:login-button>

PHP

$loginUrl = $facebook->getLoginUrl(
  array(
    'scope' => 'email'
  )
);

JS

FB.login(function(response) {
    if (response.authResponse) {
       // conosle.log('User logged in');
    } else {
       // console.log('User cancelled login or did not fully authorize.');
    }
}, {
    scope: 'email'
});​

グラフemailAPIを使用する

FB.api('/me', function(user) {
    if (user) {
        User.email = user.email;
    }
});​
于 2012-04-19T10:55:24.433 に答える
0

ユーザーのメールアドレスにアクセスできる必要があります。したがって、アプリケーションは「電子メール」 許可を要求する必要があります。

このサイトには、ユーザーからこれらのアクセス許可を取得する(または要求する)方法に関するガイドがいくつかあります。

JS SDKのドキュメントによると、次のことを行う必要があります。

FB.login(function(response) {
   // handle the response
}, {scope: 'email,user_likes,...'});
于 2012-04-19T10:51:20.647 に答える
0

次のようにコードを変更します。

$facebook->api('/me?locale=en_US&fields=name,email' );

getLoginUrl( array(
    'scope' => 'email'
));
于 2016-02-15T09:57:48.753 に答える