Google Drive API客戶端(Python):對files()。insert()的權限不足
文件:insert需要具有以下至少一個作用域的授權
https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/drive.filehttps://www.googleapis.com/auth/drive.appdatahttps://www.googleapis .com / auth /drive.apps.readonly
檢查您要使用哪個范圍進行身份驗證。
解決方法我正在嘗試使一個簡單的Python Google Drive上傳器正常工作。我已經在開發人員控制臺中創建了一個項目,啟用了DriveAPI,并添加了OAuth 2.0客戶端ID(應用程序類型“其他”)。
我可以在Google云端硬盤的“設置”->“管理應用”中看到該應用程序,并且可以成功執行Google的Python DriveAPI客戶端提供的許多操作。files().insert()但是失敗:
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'>
這是為了插入到我已使所有人可寫的目錄中,如下所示:
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])printparent = { 'isRoot': False,'kind': 'drive#parentReference','id': PARENT_ID}service.files ().insert ( body = {'parents' : [parent]},media_body=’./test.txt’,convert=False,useContentAsIndexableText=False).execute ()
其中列出的權限為:
(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’)
任何人都可以指出我所缺少的權限嗎?
相關文章:
1. 如何用python識別滑塊驗證碼中的缺口2. Docker究竟是什么 為什么這么流行 它的優點和缺陷有哪些?3. ASP.NET MVC視圖頁使用jQuery傳遞異步數據的幾種方式詳解4. 三道java新手入門面試題,通往自由的道路--鎖+Volatile5. Java基于redis和mysql實現簡單的秒殺(附demo)6. Kotlin + Flow 實現Android 應用初始化任務啟動庫7. SpringBoot+SpringCache實現兩級緩存(Redis+Caffeine)8. php讀取xml中某個元素的內容(PHP5以上才支持)9. AJAX實現省市縣三級聯動效果10. 關于HTML5的img標簽
