如何获取facebook好友列表的电子邮件地址?

时间:2012-01-10 02:33:32

标签: facebook email facebook-friends

有没有人知道如何使用Facebook PHP SDK获取朋友的电子邮件地址列表?

6 个答案:

答案 0 :(得分:9)

你不能那样做

http://developers.facebook.com/docs/reference/api/permissions/

email字段仅适用于已连接到您的应用并已获得email扩展权限的用户

答案 1 :(得分:6)

不,应用程序无法获取Email Permissions文档中所述的朋友电子邮件。从文件引用:

  

注意:应用无法获取用户朋友的电子邮件地址。

答案 2 :(得分:3)

用户的电子邮件是受保护的属性,应用程序必须专门请求访问该信息,并由用户授予。

注意:应用无法获取用户朋友的电子邮件地址。

答案 3 :(得分:1)

从以下链接获取信息:

Procedure

Statckoverflow discussion

如果用户/朋友未提供您的应用电子邮件权限,则您可能无法获取该电子邮件地址。对于这些情况,您可以选择仅过滤已授予您应用权限的朋友。这可以使用is_app_user字段完成:

SELECT uid, first_name, last_name FROM user 
  WHERE is_app_user = 1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $userId)

获取更新答案:

$appId     = 'YOUR_APP_ID';
$appSecret = 'YOUR_APP_SECRET';

$userId          = 'A_FACEBOOK_USER_ID';
$userAccessToken = 'THE_FACEBOOK_USER_ACCESS_TOKEN';

$client = new Facebook(array('appId' => $appId, 'secret' => $appSecret));

// get all friends who has given our app permissions to access their data
$fql = "SELECT uid, first_name, last_name, email FROM user "
     . "WHERE is_app_user = 1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $userId)";
$friends = $client->api(array(
  'method'       => 'fql.query',
  'access_token' => $userAccessToken,
  'query'        => $fql,
));

// make an array of all friend ids
$friendIds = array();
foreach ($friends as $friend) {
  $friendIds[] = $friend['uid'];
}

// get info of all the friends without using any access token
$friendIds = implode(',', $friendIds);
$fql = "SELECT uid, first_name, last_name, email FROM user WHERE uid IN ($friendIds)";
$friends = $client->api(array(
  'method' => 'fql.query',
  'query'  => $fql,
  // don't use an access token
));

// we should now have a list of friend infos with their email addresses
print_r($friends);

答案 4 :(得分:1)

应用无法获取用户朋友的电子邮件地址。  请参阅文档 https://developers.facebook.com/docs/reference/login/email-permissions/

答案 5 :(得分:1)

您可以访问该用户的好友列表。由于这些朋友可能尚未授权您的应用程序,因此您默认只能访问更有限的数据集:仅限姓名,个人资料图片,性别,网络。 如果用户授予您特定权限,则可以通过Graph API获取Facebook个人资料的大多数其他部分(例如,兴趣,签到,组)。这适用于用户的信息以及他/她的朋友'信息。 根据用户的隐私设置,可以获得信息。