Я использую отчеты Google Admin SDK V1 Api для сбора всех действий администратора с панели администратора Google Apps.Ошибка администратора Google SDK 401 при попытке авторизации
Мой Google Api питон клиент недавно был обновлен до версии "google-api-python-client (1.5.1)"
Ранее я использовал следующее:
from oauth2client.client import SignedJwtAssertionCredentials
serviceAccountEmail = "[email protected]"
key = "google-apps-file.p12"
scopes = ['https://www.googleapis.com/auth/admin.reports.audit.readonly']
credentials = SignedJwtAssertionCredentials(
serviceAccountEmail, key, scope=scopes, sub=userEmail)
Затем Google прекращена поддержка SignedJwtAssertionCredentials. Поэтому я переключился на это.
from oauth2client.service_account import ServiceAccountCredentials
serviceAccountEmail = "[email protected]"
key = "google-apps-file.p12"
scopes = ['https://www.googleapis.com/auth/admin.reports.audit.readonly']
credentials = ServiceAccountCredentials.from_p12_keyfile(
serviceAccountEmail, key, scopes=scopes)`
Хорошо, поэтому это должно быть относительно простое изменение кода, однако, когда я запускал код, я получаю следующую ошибку.
File "/usr/local/lib/python2.7/site-packages/oauth2client/util.py", line 137, in positional_wrapper
return wrapped(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/googleapiclient/http.py", line 832, in execute
raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 401 when requesting https://www.googleapis.com/admin/reports/v1/activity/users/all/applications/admin?alt=json returned "Access denied. You are not authorized to read activity records.">
Так никаких разрешений не изменились, одна вещь, которую я заметил, хотя это исходный код просит для sub=userEmail
(который является счет олицетворять, что учетная запись будет иметь определенные привилегии администратора над доменом Служб Google.)
Было бы разумно, что я получил бы 401
, однако в новой документации не упоминается параметр sub=userEmail
.