Я пытаюсь получить оповещения gsuite через API.Я создал учетную запись службы в соответствии с их документами , и я назначил эту учетную запись службы моей облачной функции Google.
Я не хочу использовать переменные среды или загружать учетные данные вместе с исходным кодомно я хочу использовать учетную запись службы по умолчанию, используемую функцией.
from googleapiclient.discovery import build
def get_credentials():
# if one knows credentials file location(when one uploads the json credentials file or specify them in environment variable) one can easily get the credentials by specify the path.
# In case of google cloud functions atleast I couldn't find it the path as the GOOGLE_APPLICATION_CREDENTIALS is empty in python runtime
# the below code work find if one uncomments the below line
#credentials = ServiceAccountCredentials.from_json_keyfile_name(key_file_location)
credentials = < how to get default credentials object for default service account?>
delegated_credentials = credentials.create_delegated('admin@alertcenter1.bigr.name').create_scoped(SCOPES)
return delegated_credentials
def get_alerts(api_name, api_version, key_file_location=None):
delegated_credentials = get_credentials()
alertcli = build(api_name, api_version, credentials=delegated_credentials)
resp = alertcli.alerts().list(pageToken=None).execute()
print(resp)
Есть ли способ создать объект учетных данных по умолчанию.Я пытался использовать учетные данные для импорта из google.auth, но они не содержат функцию create_delegated, и я также пытался использовать ServiceAccountCredentials (), но для этого требуется подписавшая сторона.