2015-04-23 34 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来重新生成有效令牌。

相关问题