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

标签 facebook facebook-graph-api

我的网站有一个 facebook 登录脚本,目前运行良好。我想添加请求用户电子邮件以及当前基本信息的功能。我知道我需要请求访问 token ,但我不太清楚如何。这是我当前的代码:

$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/');

最佳答案

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);

关于Facebook 请求访问 token 并获取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11473056/

相关文章:

android - 如何使用 Graph API 或 FQL 检索 Facebook 个人资料图片评论

ios - 使用第 3 方 OAuth token 在自定义用户数据库中创建用户对象?

java - applicationId 不能为空,但 xml 语法正确

ios - Stackmob 与 Facebook 离线同步

c# - 如何使用 ASP.Net Core Identity 从登录用户检索 Facebook 个人资料图片?

facebook-graph-api - Facebook Graph API 以某种语言搜索帖子

facebook - 无法使用图形 API 发布指向 FB 事件页面的链接

javascript - 在调用 FB.init() 之前调用 FB.getLoginStatus()。如何使用 Facebook API?

安卓 : Sharing facebook session object among various activities

javascript - meteor .js : Linking Twitter and Facebook to a Password based account