Я хочу записать файл в Team Drive из GAE (стандарт) в Python 37. Я добавил его служебную учетную запись в члены Team Drive. Но я не могу использовать учетные данные App Engine по умолчанию для записи.
Я не могу использовать API App Engine, потому что они недоступны в стандарте GAE для Python 37.
from google.auth import default
from googleapiclient import discovery
from googleapiclient.http import MediaIoBaseUpload
def upload_file_to_teamdrive(fd, file_name, team_drive_id, mime_type='application/text'):
scopes = ['https://www.googleapis.com/auth/cloud-platform', 'https://www.googleapis.com/auth/drive']
# How to get GAE Credentials ?
credentials, project = default(scopes=scopes)
drive = discovery.build('drive', 'v3', credentials=credentials)
media = MediaIoBaseUpload(fd, mimetype=mime_type)
drive.files().create(
supportsTeamDrives=True,
media_body=media,
body={
'parents': [team_drive_id], # ID of the Team Drive,
'name': file_name
},
fields='id'
).execute()
Этот код выдает ответ 403:
googleapiclient.errors.HttpError: https://www.googleapis.com/upload/drive/v3/files?supportsTeamDrives=true&fields=id&alt=json&uploadType=multipart вернул сообщение «Недостаточно прав: у запроса недостаточно областей проверки подлинности».
Как лучше всего писать с GAE на Drive? Как можно проверить подлинность моего GAE с помощью учетной записи службы?
Спасибо за вашу помощь.