$client_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // Client ID
$client_secret = 'XXXXXXXXXXXXXXXXXXXXXXX'; // Client secret
$redirect_uri = 'https://site.ru/social_login_callback/google.php'; // Redirect URI
if (isset($_GET['code'])) {
$result = false;
$params = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'redirect_uri' => $redirect_uri,
'grant_type' => 'authorization_code',
'code' => $_GET['code']
);
$url = 'https://accounts.google.com/o/oauth2/token';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, urldecode(http_build_query($params)));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
curl_close($curl);
$tokenInfo = json_decode($result, true);
if (isset($tokenInfo['access_token'])) {
$params['access_token'] = $tokenInfo['access_token'];
$userInfo = json_decode(file_get_contents('https://www.googleapis.com/oauth2/v1/userinfo' . '?' . urldecode(http_build_query($params))), true);
if (isset($userInfo['id'])) {
$userInfo = $userInfo;
$result = true;
}
}
/* дополнительные данные
echo "Социальный ID пользователя: " . $userInfo['id'];
echo "Имя пользователя: " . $userInfo['name'];
echo "Email: " . $userInfo['email'];
echo "Ссылка на профиль пользователя: " . $userInfo['link'];
echo "Пол пользователя: " . $userInfo['gender'];
echo $userInfo['picture'];
*/
$email =$userInfo['email']; // почта юзера
}