Php 谷歌oauth2设置范围?无法收到电子邮件
嗨,我在使用谷歌api oauth2作为登录系统,大部分情况下我都得到了我想要的,,,除了电子邮件,在尝试了一整天之后,我不得不寻求帮助。这是我的密码Php 谷歌oauth2设置范围?无法收到电子邮件,php,email,google-plus,Php,Email,Google Plus,嗨,我在使用谷歌api oauth2作为登录系统,大部分情况下我都得到了我想要的,,,除了电子邮件,在尝试了一整天之后,我不得不寻求帮助。这是我的密码 <?php $client_key = 'xxxxxxxx49-6gplrhtl5xxxxxxx5gerurei0o.apps.googleusercontent.com'; $client_secret = 'WLMQxxxxxxxxxxxxxxofyjv11'; $api_key = '9xxxxxxxx0749'; $scope =
<?php
$client_key = 'xxxxxxxx49-6gplrhtl5xxxxxxx5gerurei0o.apps.googleusercontent.com';
$client_secret = 'WLMQxxxxxxxxxxxxxxofyjv11';
$api_key = '9xxxxxxxx0749';
$scope = 'https://www.googleapis.com/auth/userinfo#email';
if(!isset($_REQUEST['code'])){
echo "no Good";
} else {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://accounts.google.com/o/oauth2/token");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "code=".$_REQUEST['code']."&client_id=".$client_key."&client_secret=".$client_secret."&redirect_uri=https://localhost/admin/index.php&grant_type=authorization_code");
$data = curl_exec($ch);
curl_close();
$data = json_decode($data);
//var_dump($data);
$access_token = $data->access_token;
echo $access_token;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.googleapis.com/plus/v1/people/me?access_token=".$access_token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$data = curl_exec($ch);
curl_close();
$data = json_decode($data);
echo $data->displayName;
//HERE IS WHERE IM HAVING DRAMA
echo $data->emails->values
echo "<img src=\"".$data->image->url."\"><br>";
echo '<pre>';
var_dump($data);
echo '</pre><br>';
}
?>
但是我没有运气,所以你的范围字符串在顶部是错误的。最简单的方法就是。。。“电子邮件”!(就像这个词一样,没有引号) 在登录人员之前,请确保您的所有作用域都有效-看起来您希望使用作用域电子邮件和配置文件。这些缩短的版本将被替换。较长的作用域仍然可以工作,但您拥有的其他作用域根本不在作用域中-它们中没有#,并且所有URL表单作用域都在googleapis.com/auth下 还有一个问题-电子邮件将位于电子邮件数组中-因此它将是您要查找的$data->emails[0]->值(如果返回多个,那么检查type字段是否也是“account”也是值得的) 您可以在API资源管理器上尝试:-尝试选择Oauth 2.0切换,删除其中的所有作用域,并将电子邮件和配置文件作为两个自定义作用域
$scope = array('https://www.googleapis.com/auth/userinfo.email','https://www.googleapis.com/plus/v1/people/me','https://www.googleapis.com/auth/userinfo.profile');