【问题标题】:Google Drive API returns 401 when attempting to authenticate尝试进行身份验证时,Google Drive API 返回 401
【发布时间】:2015-04-23 17:53:45
【问题描述】:

这是一个全新的项目,也是我第一次尝试使用 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 的值与我在凭据页面上看到的值相同。

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

【问题讨论】:

    标签: c# google-drive-api


    【解决方案1】:

    @saltface 我无法发表评论,所以我在这里发帖。

    您想使用哪个 API? Drive API 还是 Drive SDK?

    401 error 表示您没有识别,您的凭据错误或者您可能没有启用来自Google API Console 的 API。

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

    你可以从Google API Console看到

    你必须去左边的菜单 APIs/Auth => APIs 。

    您需要在此处搜索“驱动器”并启用 API。完成后,您需要创建一个凭据。

    【讨论】:

    • 我正在使用 Drive API。我已经不得不做所有这些事情来生成 JSON 文件。
    • 好的,您正在运行的代码是一个网络应用程序,不是吗?因为您需要为浏览器创建一个密钥,而另一个是为 android 应用程序创建的。你用对了吗?
    • 是的。我选择了已安装的应用程序和其他。我的凭据位于 本机应用程序的客户端 ID 标题下。
    【解决方案2】:

    我可以通过在同意屏幕的电子邮件地址下拉菜单中选择我的电子邮件地址来使其正常工作> 页面。 (之前未设置。)

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

    【讨论】:

      【解决方案3】:

      我知道这个问题已经得到解答,但只是给其他人的提示:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-09
        • 1970-01-01
        • 2019-03-05
        • 2020-07-18
        • 2018-05-03
        • 1970-01-01
        • 2019-09-13
        相关资源
        最近更新 更多