我正在使用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);
}
所以我得到了一些不包含电子邮件地址字段的用户数组的日志。
我错过了什么吗?当我将电子邮件设置为仅对我可见时,我无法使用测试帐户或我的帐户重现这一点。
答案 0 :(得分:2)
并非每个用户都设置了使用FB设置的电子邮件地址,因为您也可以使用移动设备进行注册。