Facebook请求访问令牌并获取电子邮件

Facebook请求访问令牌并获取电子邮件,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我的网站有一个facebook登录脚本,目前运行良好。我想添加请求用户发送电子邮件的功能,以及当前的基本信息。我知道我需要申请一个访问令牌,但我不知道怎么申请。以下是我当前的代码: $facebook = new Facebook(array( 'appId' => APP_ID, 'secret' => APP_SECRET, 'cookie' => true )); $session =

我的网站有一个facebook登录脚本,目前运行良好。我想添加请求用户发送电子邮件的功能,以及当前的基本信息。我知道我需要申请一个访问令牌,但我不知道怎么申请。以下是我当前的代码:

$facebook = new Facebook(array(
            'appId' => APP_ID,
            'secret' => APP_SECRET,
            'cookie' => true
        ));
$session = $facebook->getSession();

if (!empty($session)) {
    # Active session, let's try getting the user id (getUser()) and user info (api->('/me'))
    try {
        $uid = $facebook->getUser();


        $user = $facebook->api('/me/');
查看-这是传递所需权限(称为“范围”)的地方。如果用户尚未登录,则会向其显示一个登录面板,然后会显示一个单独的权限面板,用于显示您请求的且用户尚未授予的基本权限以外的任何权限。然后,您将收到一个身份验证令牌或一个可以交换为令牌的代码,然后使用它进一步查询用户并在响应中获取他们的电子邮件详细信息


祝你好运

用javascript怎么做?我特别需要$userInfo=$facebook->api(“/$user”)调用,我已经在js…FB.api('/me',函数(response){alert(response.name);//response是基本用户对象})中正常工作了;
You have to provide an extended permission for email at the time of login..
 $access_token = $this->facebook->getAccessToken();
        //check permissions list
        $permissions_list = $this->facebook->api('/me/permissions', 'GET', array('access_token' => $access_token));
        $permissions_needed = array('email');
        foreach ($permissions_needed as $perm) {
            if (!isset($permissions_list['data'][0][$perm]) || $permissions_list['data'][0][$perm] != 1) {
                $login = $facebook->getLoginUrl(array('scope' => 'email,user_birthday',
                'redirect_uri' => your site redirectUri,
                'display' => 'popup'
            ));
                header("location:$login");
            }
        }
        $user = $facebook->getUser();
        if ($user) {
            try {
                $userInfo = $facebook->api("/$user");
            } catch (FacebookApiException $e) {
                echo $e->getMessage();
            }
        }
        print_r($userInfo);