#php #facebook-graph-api #facebook-php-sdk
#php #facebook-graph-api #facebook-php-sdk
Вопрос:
У меня есть рабочая интеграция с 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',
));
}
Ошибка, должно быть, в этом коде, поскольку все остальное работает нормально. Спасибо!
Комментарии:
1. Есть ли у кого-нибудь опыт работы с этим?
Ответ №1:
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'email'
));
Это должен быть URL для входа в систему
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
также необходимо передать дополнительное разрешение переменной scope
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'email, user_activities '
));
для получения дополнительных разрешений, пожалуйста, посетите:
http://developers.facebook.com/docs/authentication/permissions/#user_friends_perms
Ответ №2:
Это должно работать с PHP SDK:
header('Location:'.$facebook->getLoginUrl(array(
'scope' => 'email'
)));
exit;
Ответ №3:
Удалите запятую после ’email’ и перенаправьте браузер на $ loginUrl, вот так:
$loginUrl = $facebook->getLoginUrl(
array(
'req_perms' => 'email'
)
);
echo '<script>top.location="'.$loginUrl.'";</script>';
die();
Редактировать
Так это делалось в свое время, теперь facebook изменил свои API: ы. Для получения более актуального решения посмотрите другие ответы на этот вопрос.
Комментарии:
1. это сработало с
req_perms
?? или нам нужно использоватьscope