петля

рживает ли рабочий процесс ADC (учетные данные приложения по умолчанию) только API Google Cloud (например, API Google Cloud Storage, но не API Google Sheet)?

Я имею в видуметод google.auth по умолчанию - отсутствие необходимости хранить какие-либо закрытые ключи с кодом является большой победой и главным преимуществом эффективного использования настройки ADC (Application Default Credentials).

Следующий код работает, если я установилGOOGLE_APPLICATION_CREDENTIALS переменная окружения для файла закрытого ключа, скажем, key.json. Это соответствуетdefault метод согласно шагу 1google.auth пакет:1. If the environment variable GOOGLE_APPLICATION_CREDENTIALS is set to the path of a valid service account JSON private key file, then it is loaded and returned.

import google.auth
from apiclient import discovery

credentials, project_id = google.auth.default(scopes=['https://www.googleapis.com/auth/spreadsheets'])

sheets = discovery.build('sheets', 'v4', credentials=credentials)

SPREADSHEETID = '....'

result = sheets.spreadsheets().values().get(spreadsheetId=SPREADSHEETID, range='Sheet1!A:B').execute()

print result.get('values', [])

Теперь рассмотрим шаг 4 метода:4. If the application is running in Compute Engine or the App Engine flexible environment then the credentials and project ID are obtained from the Metadata Service.

Если я удалюGOOGLE_APPLICATION_CREDENTIALS переменная среды на экземпляре Google Compute, я получаю следующую ошибку:

googleapiclient.errors.HttpError: <HttpError 403 when requesting https://sheets.googleapis.com/v4/spreadsheets/..../values/Sheet1%21A%3AB?alt=json returned "Request had insufficient authentication scopes.">

Это не соответствует мастеру Google согласно облачной консоли:

Ответы на вопрос(1)

Ваш ответ на вопрос