О получении разрешения на доступ к электронной почте пользователя
Я использую PHP-клиент Google API для доступа к Google Drive API.
Моя проблема в том, что я хочу получить разрешение на доступ к электронной почте пользователя. Однако на экране аутентификации не отображается разрешение, которое я ищу. Он просто отображает "Приложение хочет... иметь автономный доступ. Но когда это сделано с игровой площадки Google API, он корректно отображает доступ к приглашению пользователей по электронной почте.
Так что я думаю, что что-то не так в моем уровне кода при создании URL-адреса аутентификации. Пожалуйста, помогите мне решить проблему.
$client = new Google_Client();
$guzzleClient = new \GuzzleHttp\Client(array( 'curl' => array( CURLOPT_SSL_VERIFYPEER => false, ), ));
$client->setHttpClient($guzzleClient);
$client->setAuthConfig($oauth_credentials);
$client->setRedirectUri($redirect_uri);
$client->setAccessType('offline');
$client->setApprovalPrompt('force');
$client->setState($this->uri->segment(3));
$client->addScope("https://www.googleapis.com/auth/drive");
1 ответ
Если все, что вам нужно, это адрес электронной почты текущего авторизованного пользователя, вы можете просто перейти через API Google Drive.
Метод About.get Получает информацию о пользователе, диске пользователя и возможностях системы.
{
"user": {
"kind": "drive#user",
"displayName": "Linda Lawton",
"photoLink": "xxxx",
"me": true,
"permissionId": "xxxx",
"emailAddress": "xxxx@gmail.com"
}
}
Примечание по объему:
Области - это то, что говорит пользователю, к каким данным вы хотите получить доступ. https://www.googleapis.com/auth/drive
в основном говорит, что вы хотите полный доступ к их учетной записи Google Drive https://www.googleapis.com/auth/classroom.profile.emails
будет запрашивать доступ к своему адресу электронной почты.
Автономный доступ
"offline" говорит пользователю, что вы хотите иметь доступ к его учетной записи, когда они не используют ваше приложение. Добавив его, вы получите обновленный токен, который вы можете сохранить и использовать в любое время, чтобы получить новый токен доступа для доступа к данным пользователей.