2016-08-03 77 views
1

我不確定我錯過了什麼,但是我生成了「json」文件並在安裝nuget包後將其連接到代碼。我有權從谷歌硬盤文件夾中讀取文件,但我無法創建文件。它不斷給我一個權限錯誤。谷歌驅動器API v3 - 保持獲取權限錯誤

var fileMetadata = new Google.Apis.Drive.v3.Data.File(); 
fileMetadata.Name = "SomeFile.txt"; 
fileMetadata.MimeType = "application/vnd.google-apps.drive-sdk"; 
var request = service.Files.Create(fileMetadata); 
request.Fields = "id"; 
var file = request.Execute(); 

我已經嘗試將範圍更改爲.Drive和所有其餘的,但它仍然無法正常工作。我該怎麼辦?它應該是我在甚至在安裝API的nuget包之前生成json的網站中錯過的東西?

錯誤: Google.Apis.dll但在用戶代碼中沒有處理

其他信息:Google.Apis.Requests.RequestError

權限不足[403]

錯誤[

Message[Insufficient Permission] Location[ - ] Reason[insufficientPermissions] Domain[global] 

謝謝

回答

0

編輯:這個問題就解決了。如果發生這種情況,無論範圍內的所有更改如何,都可能因對話框中顯示的任何原因而被拒絕,並且您應該在瀏覽器中選擇「允許」。例如,我嘗試從另一臺計算機上爲調試加載瀏覽器(它只做一次),並要求允許訪問。之後,一切都奏效了。對於當前拒絕訪問的計算機,請在瀏覽器中驅動並刪除API正在使用的應用程序,然後再次爲您提供對話。

0

從Drive API的文檔中,建議的此403 error的操作是向用戶報告需要爲這些權限請求更新文件。您可能還需要檢查由files.get檢索到的元數據中的用戶訪問級別,並使用該級別將您的用戶界面更改爲只讀用戶界面。另外請確保您按照Authorization中的步驟操作。

{ 
    "error": { 
    "errors": [ 
     { 
     "domain": "global", 
     "reason": "insufficientFilePermissions", 
     "message": "The user does not have sufficient permissions for file {fileId}." 
     } 
    ], 
    "code": 403, 
    "message": "The user does not have sufficient permissions for file {fileId}." 
    } 
} 

另外,Files:create需要這個範圍:

https://www.googleapis.com/auth/drive.file 
https://www.googleapis.com/auth/drive.appdata 

欲瞭解更多信息,請在此相關的SO問題,它可能給你如何解決這一點的想法。