Добрый день! Уже весь день мучаюсь, самому не удалось решить проблему. Делаю аутентификацию через соц сети, в частности, через Vk, но не могу получить email, указал scope, передал в fields, которые надо получить, как пользователь кликнул "Разрешить" использовать эти данные, но все равно пишет Notice: Undefined index: email in ...
Подскажите в чем проблема. Спасибо!
Страница с самой аутентификацией:
PHP:
скопировать код в буфер обмена
$client_id='555555555'; // ID приложения $client_secret='qwqwqwqwqwqwqwwqwqwqw'; // Ключ приложения $redirect_uri='http://localhost/user/site'; // Адрес сайта $url='http://oauth.vk.com/authorize'; 'client_id'=>$client_id, 'redirect_uri'=>$redirect_uri, 'response_type'=>'code', 'scope'=>'email' );
Страница с обработчиком, куда делает редирект:
PHP:
скопировать код в буфер обмена
if (isset($_GET['code'])) { $result = false; 'client_id' => $client_id, 'client_secret' => $client_secret, 'code' => $_GET['code'], 'redirect_uri' => $redirect_uri ); if (isset($token['access_token'])) { 'uids'=>$token['user_id'], 'fields'=>'uid,first_name,last_name,email', 'access_token'=>$token['access_token'] ); if (isset($userInfo['response'][0]['uid'])) { $userInfo = $userInfo['response'][0]; $result = true; } } if ($result) { echo "Имя: " . $userInfo['first_name'] . '<br />'; echo "Фамилия: " . $userInfo['last_name'] . '<br />'; echo "Имейл: " . $userInfo['email'] . '<br />'; } }
Решение (email лежит в токене):
if (isset($userInfo['response'][0]['uid'])) {
$userInfo['response'][0]['email'] = $token['email'];
$userInfo = $userInfo['response'][0];
$result = true;
}
echo "Имейл пользователя: " . $userInfo['email'] . '<br />';(Отредактировано автором: 23 Октября, 2015 - 01:36:42)
|