尝试进行身份验证时,Google Drive API会返回401

时间:2015-04-23 17:53:45

标签: c# google-drive-api

这是一个全新的项目,也是我第一次尝试使用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(文件流).Secrets与我在“凭据”页面上看到的值保持相同的值。

我已经使用Firefox和IE进行了测试。我做错了什么?

3 个答案:

答案 0 :(得分:0)

@saltface我不能评论所以我在这里发帖。

您想使用哪种API? Drive API或Drive SDK?

401 error表示您尚未识别,您的凭据错误,或者您尚未从Google API Console启用API。

您启用了api吗?然后,如果是这样的话......你是否生成了网络密钥?。

您可以在Google API Console

中看到

你必须转到左侧菜单API / Auth => API。

您需要搜索'云端硬盘'并启用API。完成后,您需要创建一个凭据。

答案 1 :(得分:0)

我能够通过在 同意屏幕上的 电子邮件地址 下拉菜单中选择我的电子邮件地址来实现目标 页面。 (以前未设置过。)

我创建了另一个Google项目并将电子邮件地址留空了。在我设置电子邮件地址之前,它表现出相同的行为。

答案 2 :(得分:0)

我知道这个问题已经得到解答,但就像对其他人的说明一样:

最近,我在尝试设置Google云端硬盘"推送通知时遇到了401 Unauthorized错误响应" (网络挂接)。事实证明,这是因为我的访问令牌已经过期了!您可以通过运行代码示例here重新生成有效令牌。