#python #google-drive-api #pydrive
#python #google-drive-api #pydrive
Вопрос:
Как следует из названия, у меня проблема с pydrive. Я выполнил код, указанный в быстром запуске pydrive (https://googleworkspace.github.io/PyDrive/docs/build/html/quickstart.html ) и я создал файл настроек и учетных данных, чтобы не вводить свои учетные данные постоянно. Но когда я запускаю этот код:
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
# Rename the downloaded JSON file to client_secrets.json
# The client_secrets.json file needs to be in the same directory as the script.
gauth = GoogleAuth()
drive = GoogleDrive(gauth)
# List files in Google Drive
fileList = drive.ListFile().GetList()
for drive_file in fileList:
print('title: %s, id: %s' % (drive_file['title'], drive_file['id']))
Я вижу только файлы, созданные с помощью моего скрипта. Например, если я добавлю это перед файлом списка:
folder = drive.ListFile({'q': "title = 'Python_test' and trashed=false"}).GetList()[0] # get the folder we just created
file = drive.CreateFile({'title': "test.txt", 'parents': [{'id': folder['id']}]})
file.Upload()
Я вижу только папку и идентификатор файла, который я только что создал… И если я добавлю файл вручную на свой диск (например, в моем браузере), он не появится.
У кого-нибудь есть представление о том, что происходит?
Комментарии:
1. у вас есть код для GoogleAuth? какую область он запрашивает?
2. @DaImTo, черт возьми, это была просто проблема с запросом области видимости, спасибо! (Я добавил неправильный oauth_scope в свой файл настроек)
Ответ №1:
Я только что нашел проблему, она была в моих настройках.файл yaml, я добавил только этот oauth_scope:
oauth_scope:
- https://www.googleapis.com/auth/drive.file
но это дает доступ только к файлам, созданным приложением. Чтобы исправить это, мне нужно было удалить .файл, подобный этому
oauth_scope:
- https://www.googleapis.com/auth/drive
Если вы хотите получить более подробную информацию о различных областях, проверьте эту ссылку:
https://developers.google.com/identity/protocols/oauth2/scopes