Учетная запись службы GTasks API: клиент не авторизован для получения токенов доступа с помощью этого метода - PullRequest
0 голосов
/ 06 января 2020

У меня есть служебная учетная запись с делегированием по всему домену, и она хорошо работает для API-интерфейсов Календаря. Как и другие пользователи в организации, я могу выдавать себя за события CRUD в Календаре Google без экрана согласия. Теперь я пытаюсь использовать GTasks API, но получаю ошибку.

Для GTasks

credentials = service_account.Credentials.from_service_account_file('service-account.json', scopes=['https://www.googleapis.com/auth/tasks'])
delegated_credentials = credentials.with_subject('username@company.com')
service = build('tasks', 'v1', credentials=delegated_credentials)
tasklists = service.tasklists().list(maxResults=10).execute()

и получил ошибку ниже.

('unauthorized_client: Client is unauthorized to retrieve access tokens using this method, or client not authorized for any of the scopes requested.', '{\n  "error": "unauthorized_client",\n  "error_description": "Client is unauthorized to retrieve access tokens using this method, or client not authorized for any of the scopes requested."\n}')

Для GCalendar работает нормально

credentials = service_account.Credentials.from_service_account_file('service-account.json', scopes=['https://www.googleapis.com/auth/calendar'])
delegated_credentials = credentials.with_subject('username@company.com')
service = build('calendar', 'v3', credentials=delegated_credentials)
events = service.events().list(calendarId=SUBJECT,timeMin=now,maxResults=10,orderBy='startTime',singleEvents=True).execute()

Я использую эту библиотеку https://github.com/googleapis/google-api-python-client. Любой намек, что здесь не так?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Календарь Google и Задачи поддерживают широкое делегирование домена, я использую это. Я предлагаю следующее:

  • Проверьте, не активирована ли на консоли разработчика API Google Tasks
  • Проверьте, добавили ли вы Google Tasks в свою область разрешений API на панели администратора G Suite. Для получения более подробной информации см. https://developers.google.com/identity/protocols/OAuth2ServiceAccount
0 голосов
/ 06 января 2020

Не все API поддерживают делегирование по всему домену. Если они это сделают, вы увидите, что это упомянуто в документации Auth.

Calendar Calendar поддерживает делегирование по всему домену, а Tasks API - нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...