有没有人知道如何使用Facebook PHP SDK获取朋友的电子邮件地址列表?
答案 0 :(得分:9)
你不能那样做
http://developers.facebook.com/docs/reference/api/permissions/
email
字段仅适用于已连接到您的应用并已获得email
扩展权限的用户
答案 1 :(得分:6)
不,应用程序无法获取Email Permissions文档中所述的朋友电子邮件。从文件引用:
注意:应用无法获取用户朋友的电子邮件地址。
答案 2 :(得分:3)
用户的电子邮件是受保护的属性,应用程序必须专门请求访问该信息,并由用户授予。
注意:应用无法获取用户朋友的电子邮件地址。
答案 3 :(得分:1)
从以下链接获取信息:
如果用户/朋友未提供您的应用电子邮件权限,则您可能无法获取该电子邮件地址。对于这些情况,您可以选择仅过滤已授予您应用权限的朋友。这可以使用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个人资料的大多数其他部分(例如,兴趣,签到,组)。这适用于用户的信息以及他/她的朋友'信息。 根据用户的隐私设置,可以获得信息。