我已经阅读了很多帖子并尝试了尽可能多的工作,最后得到了部分答案 - 我收到了用户信息的回复,但它不包含我在寻找的电子邮件地址第一名。
define('SCOPES', implode(' ', array(
Google_Service_Drive::DRIVE,
Google_Service_Oauth2::USERINFO_EMAIL,
Google_Service_Oauth2::USERINFO_PROFILE,
Google_Service_Oauth2::PLUS_ME)
));
注意:我知道有些可能不是必需的,但比对不起更安全.. ?? ..
$accessToken = "{\"access_token\":\"ya29.CjR9A6X75 bla bla bla 02913}";
$client = new Google_Client();
$client->setApplicationName(APPLICATION_NAME);
$client->setScopes(SCOPES);
$client->setAuthConfigFile(CLIENT_SECRET_PATH);
$client->setState($userId);
$client->setAccessType('offline');
// set the accessToken
$client->setAccessToken($accessToken);
$googleOAuth = new Google_Service_Oauth2($client);
$result = $googleOAuth->userinfo->get();
var_dump($result);
$ result的转储有一些信息但不是电子邮件......
$ result =
的片段 ["locale"]=>
string(2) "en"
["name"]=>
string(11) "Fred Flintstone"
["email"]=>
NULL
["id"]=>
string(21) "1111111111111111111111"
["picture"]=>
string(92) "https://bla blabla/photo.jpg"
["verifiedEmail"]=>
NULL
任何人都可以了解为什么'我没有收到回复的电子邮件,我真的需要它。或者也许我可能没有尝试过一些建议?
谢谢,
约翰
答案 0 :(得分:0)
找到一个对我有用的答案...我现在收到一个电子邮件地址,我的更改如下所示。
使用这些范围
define('SCOPES', implode(' ', array(
Google_Service_Drive::DRIVE,
Google_Service_Drive::DRIVE_FILE,
Google_Service_Oauth2::USERINFO_EMAIL)
));
//获取电子邮件地址
$googleOAuth = new Google_Service_Oauth2($client);
$email = $googleOAuth->userinfo->get()->email;
感谢您的帮助&长相
约翰