11

Ich versuche, einen einfachen Python-Google Drive-Uploader zum Laufen zu bringen. Ich habe ein Projekt in der Entwicklerkonsole erstellt, die Drive-API aktiviert und eine OAuth 2.0-Client-ID (Anwendungstyp "Andere") hinzugefügt.Google Drive API-Client (Python): Unzureichende Berechtigung für Dateien(). Insert()

Ich kann die Anwendung in den Einstellungen von Google Drive -> Apps verwalten sehen und kann viele Operationen erfolgreich ausführen, die vom Python-Drive-API-Client von Google bereitgestellt werden. jedoch Dateien() .Insert() nicht mit:

googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&convert=false&useContentAsIndexableText=false&alt=json returned "Insufficient Permission"> 

Dies ist für einen Einsatz in einem Verzeichnis, das ich beschreibbar jeder gemacht, wie unten zu sehen:

credentials = get_credentials() 
http = credentials.authorize (httplib2.Http()) 
service = discovery.build ('drive', 'v2', http=http) 

PARENT_ID="0B1gLgXwTiUzlfmo0UGVsZ1NWdW1nZG9OcENNYkJua2E1d0pqWE14TjFyc2hVMHdEU1h5czQ" 

perms = service.permissions().list(fileId=PARENT_ID).execute() 

print ("PERMISSIONS:") 
for perm in perms["items"]: 
    for p in perm: 
     print (p, perm[p]) 

print 

parent = { 
    "isRoot": False, 
    "kind": "drive#parentReference", 
    "id": PARENT_ID 
} 

service.files().insert (
    body = {"parents" : [parent]}, 
    media_body='./test.txt', 
    convert=False, 
    useContentAsIndexableText=False 
).execute() 

, die die Berechtigungslisten als :

(u'withLink', True) 
(u'kind', u'drive#permission') 
(u'etag', u'"F-w0rsCIWtQP8RGyv_V1DlKfcRk/icwHkDdfUYuMzqZrUsVIyvu85K8"') 
(u'role', u'writer') 
(u'type', u'anyone') 
(u'id', u'anyoneWithLink') 
(u'selfLink', u'https://www.googleapis.com/drive/v2/files/0B1gLgXwTiUzlfmo0UGVsZ1NWdW1nZG9OcENNYkJua2E1d0pqWE14TjFyc2hVMHdEU1h5czQ/permissions/anyoneWithLink') 

Kann mir jemand zeigen, auf welche Erlaubnis ich vermisse, bitte?

+1

Wenn Sie den Benutzer authentifiziert haben, welchen Bereich haben Sie verwendet? – DaImTo

+0

Falscher Auth-Bereich, sehe ich. Danke vielmals. –

Antwort

0

Wie @DalmTo geraten, war die Frage ein falscher Auth Umfang in:

flow_from_clientsecrets() 
4

Wenn Sie diese Bereiche oder Berechtigungen ändern, versuchen Sie, Ihre zuvor gespeicherten Anmeldedaten oder den Browser-Cache zu löschen.