0

Problèmeincomplets résultats API Google Drive REST pour les fichiers d'entraînement de l'équipe

Au cours de la première phase de mon système de sauvegarde d'entraînement de l'équipe, je dois d'abord analyser les fichiers dans le lecteur de l'équipe donnée afin de déterminer les fichiers à copier pour la sauvegarde.

I (pense?) Ont les autorisations sur les fichiers & dossiers de l'entraînement de l'équipe, en raison des pouvoirs que j'utilise (mis à Owner dans la console de nuage).

Néanmoins, mon problème est que lorsque j'Interroger l'API REST pour une liste de fichiers d'un lecteur donné équipe, les résultats ne sont pas conformes à la documentation. Les objets de fichiers retournés ne contiennent que 5 champs qui sont:

  • kind, name, id, mimeType, teamDriveId

Selon la documentation fournie, je reçois une poignée plus de champs.

Voici le code que j'utilise pour interroger l'API et la sortie.

Source simplifié

credentials = get_credentials() # retrieves and processes app credentials 
drive = get_drive_api(credentials) # get the drive API v3 using httplib2 and discovery 
query = drive.files().list(
    pageSize = 10, 
    corpora = 'teamDrive', 
    supportsTeamDriveItems = True, 
    includeTeamDrives = True, 
    teamDriveId = "..." 
) 
results = query.execute() # contact the REST API 
files = results.get('files', []) 
for file in files: 
    print(file) 

Pour l'entraînement de l'équipe donnée, la sortie est

{ 
    'kind': 'drive#file', 
    'id': '...', 
    'name': 'filename', 
    'mimeType': 'application/vnd.google-apps.document', 
    'teamDriveId': '...' 
} 

Ce qui est clairement pas le résultat attendu selon le docs.

Avez-vous des indications sur la raison pour laquelle je ne reçois pas les données complètes attendues?

Répondre

2

With Google Drive API v3 full resources are no longer returned by default. Use the fields query parameter to request specific fields to be returned. If left unspecified only a subset of commonly used fields are returned.

Pour récupérer tous les champs disponibles de la ressource que vous pouvez définir fields-*.

Par exemple:

query = drive.files().list(
    pageSize = 10, 
    corpora = 'teamDrive', 
    supportsTeamDriveItems = True, 
    includeTeamDrives = True, 
    teamDriveId = "...", 
    fields="*" # or maybe "files(id,name,capabilities/canShare),nextPageToken" 
) 
+0

Merci beaucoup! –