Вы создали проект в Google Cloud Platform. Создали Consent Screen для OAuth2.0 Client ID. Создали приложение, которое должно, используя SDK (допустим google-api-php-client ) запрашивать у пользователя разрешения. Однако пользователь видит вот такое сообщение.
Что это значит и что с этим делать.
Что значит Ошибка 403: access_denied для Google API
Дело в том, что проект в Google Cloud Platform по умолчанию находится в режиме тестирования. И чтобы пользоваться функционалом разных API Google требующего OAuth авторизации нужно либо пройти модерацию проекта в Google, либо добавить тестовых пользователей (аккаунты google этих пользователей) в специальный список тестеров для OAuth2.0 Client ID в раздел OAuth consent screen. Если этого не сделать или запрашивать разрешения у пользователя не из этого списка то как раз и будет появляться ошибка Ошибка 403: access_denied.
Как добавить тестового пользователя в OAuth2.0 Client ID
Открой раздел OAuth consent screen (ссылка вида https://console.cloud.google.com/apis/credentials/consent?project=<твой проект> ) и найди кнопку Test Users
Добавь тестового юзера используя его емейл на домене gmail.com вида some-user@gmail.com , чтобы получилось так:
Тогда этот пользователь при запросе разрешений из твоего разрешения перестанет получать ошибку Ошибка 403: access_denied. А вместо него будет вот такое окошко:
Оно как раз рассказывает пользователю, которого вы добавили в список тестеров, что приложение которое запрашивает у пользователя разрешения к его ресурсам не было проверено в Google и может быть не безопасно. То есть продакшен на широкую публику такого приложения вызывает большие сомнения.
Но если пользователь согласится, то:
Затем выбери нужные права
И все заработает. Только не забудь, что для каждого проекта есть лимит в 100 пользователей которые могут стать тестерами. И, самое главное, тестеров нельзя удалить из списка!
А ещё, если у вас на один аккаунт выданы разрешения на управление другими аккаунтами (например для YouTube), то достаточно добавить в тестеры такой метааккаунт чтобы получить доступ ко всем аккаунтам (каналам Youtube например) к которым имеет доступ такой аккаунт.