Facebook API缺少用户个人资料中的字段

时间:2013-12-04 12:08:19

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

我正在使用PHP SDK处理FB应用程序。 实施似乎是正确的,一切似乎都很好。

我面临的问题是某些用户个人资料不包含电子邮件地址。这很奇怪,因为应用程序具体要求此权限。

此操作的代码:

    // 1. If we cant get the user, log him in and request permissions if he has deleted/deauthorized or new to app
    if (!$fbCurrentUserID){
        $loginUrl = $facebook->getLoginUrl(array(
            'scope' => 'email,user_birthday',
        ));
        $this->abortToUrl($loginUrl);
    }

    try {
        $user_profile = $facebook->api('/me');
        if (!is_array($user_profile) || empty($user_profile['email'])) {
            if ($log = $this->getLog()) {
                $log->log('Facebook login no valid userprofile', Zend_Log::ALERT, array('user_profile' => $user_profile));
            }
            $this->abortToUrl($landingPage_url);
        }
        // 2.a User has provided data go on...
    } catch (FacebookApiException $e) {
        // 2.b Something bad happened. Worst case scenario so go to start
        if ($log = $this->getLog()) {
            $log->log($e->getMessage(), Zend_Log::CRIT);
        }
        // If he declined or anything went wrong go to LP
        $this->abortToUrl($landingPage_url);
    }

所以我得到了一些不包含电子邮件地址字段的用户数组的日志。

我错过了什么吗?当我将电子邮件设置为仅对我可见时,我无法使用测试帐户或我的帐户重现这一点。

1 个答案:

答案 0 :(得分:2)

并非每个用户都设置了使用FB设置的电子邮件地址,因为您也可以使用移动设备进行注册。