是否可以使用facebook api获取朋友的电子邮件?

时间:2013-09-05 06:07:49

标签: php facebook facebook-graph-api facebook-php-sdk facebook-sdk-3.0

我得到了名字和身份,但没有关于朋友的更多信息。

<?php
    $friends = $facebook->api('me/friends');

    //print_r($friends['data']);
    print_r("Number of Friends: ". count($friends['data']));

    foreach ($friends['data'] as $key=>$listOfFriends) 
    {
       echo "<br/>".$key." ".$listOfFriends['name']."<img src='https://graph.facebook.com/".$listOfFriends['id']."/picture' width='50' height='50' title='".$listOfFriends['name']."' />";     
    }
?>

3 个答案:

答案 0 :(得分:0)

来自Facebook文档:

“同样,为了保护未明确授权您的应用程序的用户的隐私,您的应用程序将只能访问有关用户朋友的基本个人资料信息,例如他们的姓名和个人资料图片。如果您的应用程序需要访问有关用户的朋友启用社交功能的其他数据,您需要请求下面列出的一些特殊朋友权限。“

答案 1 :(得分:0)

您无法获取朋友的电子邮件地址......一切都取决于他们的隐私设置。

如果他们允许让朋友或其他用户查看他们的电子邮件地址,那么您可以进行审核,否则

答案 2 :(得分:0)

您可以,但您必须向用户询问具体的email permissions

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

以下是链接https://developers.facebook.com/docs/reference/login/email-permissions/

更新:

使用Facebook Javascript SDK,在客户端,您可以使用此代码来请求电子邮件权限:

FB.login(function(response) { // Asking for email permission.
    // After getting the response, check if the user has granted the permission or not.
    FB.api({ method: 'fql.query', query: 'SELECT email FROM permissions WHERE uid = ' + UserID}, function(resp) {
          if(resp[0]['email'] == '1')
                ; // Permission given.
          else
                ; // Permission not given.
     });
}, {scope: 'email'});