О получении разрешения на доступ к электронной почте пользователя

Я использую 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" говорит пользователю, что вы хотите иметь доступ к его учетной записи, когда они не используют ваше приложение. Добавив его, вы получите обновленный токен, который вы можете сохранить и использовать в любое время, чтобы получить новый токен доступа для доступа к данным пользователей.

Другие вопросы по тегам