2013-07-09 3 views
1

Lorsque j'essaie de récupérer un dossier en répertoriant différents critères de requête, en Python, j'obtiens une erreur HTTP 500 "Internal error".Erreur lors de la liste des fichiers avec la requête

Le code pour demander le dossier est le suivant:

q = ["'root' in parents", "title='test'", "mimeType='application/vnd.google-apps.folder'", "trashed=false"] default_folder_list = service.files().list(q=' and '.join(q), fields="items/id").execute()

Si je retire le titre ou les critères des parents, cela fonctionne. Si j'essaye avec le API explorer, cela fonctionne aussi parfaitement. Mon application dispose uniquement de l'autorisation drive.file.

Quelle pourrait être l'origine de cette erreur?

Répondre

4

C'est un problème connu avec la portée drive.file, utilisez drive.readonly.metadata en plus pour les requêtes.

Modifier: Il semble que la requête soit également rompue avec la portée drive.appdata. Je m'assure que nous le réparons le plus tôt possible.

+0

Avez-vous un lien vers l'erreur connue? – pinoyyid

+0

Aucun lien externe disponible, désolé. –

+0

Merci pour l'aperçu Burcu, cela fonctionne. Cependant, il est très ennuyeux de demander une nouvelle autorisation aux utilisateurs déjà authentifiés. Pouvez-vous nous donner plus de visibilité sur la résolution de ce problème s'il vous plaît? –

2

G recommande à votre application de reculer et de réessayer 500 erreurs. Avez-vous essayé cela et échoue-t-il de manière persistante lors de la nouvelle tentative?

+0

Oui, je fais effectivement reculer exponentielle lors de la demande. Merci d'avoir suggéré! –

0

Je trouve le même problème, et cela n'a rien à voir avec la sauvegarde ou l'attente ... L'explorateur d'API fonctionne parfaitement, mais une URL dans l'onglet suivant, développé à partir de l'explorateur, échoue à chaque fois. Pas souvent ... toujours!

Le problème semble être lié à la requête étant plus complexe qu'un seul élément. par exemple. si je demande un nom = ou quelque chose dans le parent, alors cela fonctionne. Si je combine à la fois avec "et" alors il échoue.

Par exemple:

https://www.googleapis.com/drive/v3/files?q=%270B0ap0WDOII5mbjdwajNBMlRoZUU%27+in+parents&key= {ma clé}

fonctionne très bien, mais

https://www.googleapis.com/drive/v3/files?q=%270B0ap0WDOII5mbjdwajNBMlRoZUU%27+in+parents+and+name%3D%27test.TXT%27&key= {ma clé}

échoue avec

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "internalError", 
    "message": "Internal Error" 
    } 
    ], 
    "code": 500, 
    "message": "Internal Error" 
} 
} 

Notez que les deux ces URL sont copiées directement à partir de l'API Explorer "section de https://developers.google.com/drive/v3/reference/files/list avec ma clé API ajoutée à la fin de chaque.

Il échoue également exactement de la même manière avec l'interface v2.

Y a-t-il un bogue dans l'API? Avoir à faire avec des fichiers dans un dossier public?

Questions connexes