Я пытаюсь перечислить все папки (и подпапки) на диске Google.
В моей корневой папке шесть вложенных папок. но мой код показывает только файлы.
def credentials_from_file():
"""Load credentials from a service account file
Args:
None
Returns: service account credential object
https://developers.google.com/identity/protocols/OAuth2ServiceAccount
"""
# https://developers.google.com/identity/protocols/googlescopes#drivev3
SCOPES = [
'https://www.googleapis.com/auth/drive'
]
SERVICE_ACCOUNT_FILE = './auth_creds.json'
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
return credentials
credentials = credentials_from_file()
service = discovery.build('drive', 'v3', credentials=credentials)
results = service.files().list(pageSize=10, fields="nextPageToken, files(id, name)").execute()
items = results.get('files', [])
if not items:
print('No files found.')
else:
print('Files:')
for item in items:
print(u'{0} ({1})'.format(item['name'], item['id']))
Как мне получить информацию о подпапках?
Спасибо!
ОБНОВЛЕНИЕ № 1. Это версия OAuth. Он позволяет браузеру создать токен, а затем должен запуститься, но после того, как токен создан, он зависает при выполнении:
from httplib2 import Http
from oauth2client import file, client, tools
from getfilelistpy import getfilelist
SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'
store = file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('rrc_crds.json', SCOPES)
creds = tools.run_flow(flow, store)
resource = {
"oauth2": creds.authorize(Http()),
"fields": "files(name,id)",
}
res = getfilelist.GetFileList(resource) # or r = getfilelist.GetFolderTree(resource)
print(res)