Вы создали проект в Google Cloud Platform. Создали Consent Screen для OAuth2.0 Client ID. Создали приложение, которое должно, используя SDK (допустим google-api-php-client ) запрашивать у пользователя разрешения. Однако пользователь видит вот такое сообщение.

Error 403 Access Denied Message

Что это значит и что с этим делать.

Что значит Ошибка 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

Error 403 Access Denied Message

Добавь тестового юзера используя его емейл на домене gmail.com вида some-user@gmail.com , чтобы получилось так:

Error 403 Access Denied Message

Тогда этот пользователь при запросе разрешений из твоего разрешения перестанет получать ошибку Ошибка 403: access_denied. А вместо него будет вот такое окошко:

Error 403 Access Denied Message

Оно как раз рассказывает пользователю, которого вы добавили в список тестеров, что приложение которое запрашивает у пользователя разрешения к его ресурсам не было проверено в Google и может быть не безопасно. То есть продакшен на широкую публику такого приложения вызывает большие сомнения.

Но если пользователь согласится, то:

Error 403 Access Denied Message

Затем выбери нужные права

Error 403 Access Denied Message

И все заработает. Только не забудь, что для каждого проекта есть лимит в 100 пользователей которые могут стать тестерами. И, самое главное, тестеров нельзя удалить из списка!

А ещё, если у вас на один аккаунт выданы разрешения на управление другими аккаунтами (например для YouTube), то достаточно добавить в тестеры такой метааккаунт чтобы получить доступ ко всем аккаунтам (каналам Youtube например) к которым имеет доступ такой аккаунт.