Разрешение на получение электронной почты пользователя с Facebook PHP SDK - PullRequest
5 голосов
/ 06 апреля 2011

У меня есть рабочая интеграция с FaceBok API через PHP SDK и рабочий вход в систему. Теперь я попытался добавить разрешение для электронной почты также с помощью следующего кода, но при попытке подключения / входа в приложение электронная почта не запрашивается.

// login or logout url will be needed depending on current user state.
if ($me) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(array(
    'req_perms' => 'email',
  ));
}

Ошибка должна быть в этом коде, так как все остальное работает нормально. Спасибо!

Ответы [ 3 ]

7 голосов
/ 28 марта 2012
$loginUrl = $facebook->getLoginUrl(array(
   'scope' => 'email'
));

Это должен быть логин

<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>

также необходимо передать дополнительное разрешение в переменную области действия

  $loginUrl = $facebook->getLoginUrl(array(
   'scope' => 'email, user_activities '
 ));

для получения дополнительных разрешений, пожалуйста, посетите:

http://developers.facebook.com/docs/authentication/permissions/#user_friends_perms

3 голосов
/ 23 ноября 2011

Это должно работать с PHP SDK:

header('Location:'.$facebook->getLoginUrl(array(
    'scope' => 'email'
)));
exit;
1 голос
/ 17 апреля 2011

Удалите запятую после «электронной почты» и перенаправьте браузер на $ loginUrl, например:

$loginUrl = $facebook->getLoginUrl(
  array(
    'req_perms' => 'email'
  )
);

echo '<script>top.location="'.$loginUrl.'";</script>';
die();

РЕДАКТИРОВАТЬ

Так было и раньше,теперь Facebook изменили свои API: s.Для более актуального решения посмотрите другие ответы на этот вопрос.

...