2015-04-23 32 views
1

這是一個全新的項目,也是我第一次嘗試使用Google Drive的API。我立即得到一個401,當我運行:Google Drive API在嘗試驗證時返回401

static void Main(string[] args) 
    { 
     UserCredential credential; 
     using (var filestream = new FileStream("client_secrets.json", 
      FileMode.Open, FileAccess.Read)) 
     { 
      credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
       GoogleClientSecrets.Load(filestream).Secrets, 
       new[] { DriveService.Scope.Drive }, 
       "user", 
       CancellationToken.None, 
       new FileDataStore("DriveCommandLineSample")).Result; 
     } 

此代碼是從https://developers.google.com/drive/web/quickstart/quickstart-cs逐字複製。我下載了JSON文件client_secrets.json,並驗證GoogleClientSecrets.Load(filestream).Secrets與我在Credentials頁面上看到的值相同。

我已經用Firefox和IE測試過。我究竟做錯了什麼?

回答

0

我能得到它通過在該電子郵件地址同意畫面頁面上下拉列表中選擇我的電郵地址的工作。 (之前未設置。)

我創建了另一個Google項目並將電子郵件地址留空。它展示了相同的行爲,直到我設置了電子郵件地址。

0

@saltface我不能評論,所以我張貼在這裏。

你想使用哪個API? Drive API或Drive SDK?

401 error表示您沒有識別,您的憑據有誤或者您未啓用Google API Console的API。

你是否啓用api?然後,如果是這種情況......您是否生成了網絡密鑰?

你可以看到,從Google API Console

有你有去左邊的菜單的API /驗證=>的API。

在那裏您需要搜索'Drive'並啓用API。一旦你完成了,你將需要創建一個憑據。

+0

我正在使用Drive API。我已經不得不做所有這些事情來生成JSON文件。 – saltface

+0

好的,你正在運行的代碼是一個Web應用程序,不是嗎? 因爲您需要爲瀏覽器創建一個密鑰,另一個用於安卓應用。你用的是正確的嗎? – paulofer85

+0

是的。我選擇了_installed application_和_other_。我的憑證位於本機應用程序的_Client ID標題下。 – saltface

0

我知道這個問題已經回答了,但只是作爲一個紙條給別人:

最近,我正在試圖建立谷歌驅動器「推送通知」(網絡掛接)當401 Unauthorized錯誤響應。事實證明,這是因爲我的訪問令牌已過期!您可以通過運行代碼示例here來重新生成有效令牌。

相關問題