Есть такой код - тут все в порядке, адрес почты получаем в случае если пользователь разрешает ее отправить.
<?php
$client_id = // ID приложения
$client_secret = // Защищённый ключ
$redirect_uri = // Адрес сайта
if (isset($_GET['code'])) {
$result = false;
$params = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'code' => $_GET['code'],
'redirect_uri' => $redirect_uri
);
$token = json_decode(file_get_contents('https://oauth.vk.com/access_token' . '?' . urldecode(http_build_query($params))), true);
if (isset($token['access_token'])) {
$params = array(
'user_id' => $token['user_id'],
'email' => $token['email'],
'fields' => 'uid,first_name,bdate,photo_200_orig,sex',
'access_token' => $token['access_token']
);
$_SESSION['email'] = $token['email'];
$userInfo = json_decode(file_get_contents('https://api.vk.com/method/users.get' . '?' . urldecode(http_build_query($params))), true);
if (isset($userInfo['response'][0]['uid'])) {
$userInfo = $userInfo['response'][0];
$result = true;
}
}
if ($result) {
echo $userInfo['uid'];
echo $userInfo['first_name'];
echo $userInfo['photo_200_orig'];
echo $userInfo['sex'];
echo $_SESSION['email'];
}
}
?>
Если же запретили отправлять почту, в строчке
<?php
'email' => $token['email'],
?>
получается ошибка.
Notice: Undefined index: email
Как правильно сделать, чтобы при запрете отправки почты, пользователя перекидывало на главную сайта?