首页 > 解决方案 > 从 Gdrive 下载文件时遇到问题:403 禁止错误

问题描述

我有一个具有谷歌驱动器文件选择器功能的网站,它允许用户从 Gdrive 帐户中选择文件并上传到我的网站。

此功能工作正常,但突然从最近 3-4 天停止工作,我收到错误“403 Forbidden:客户端没有权限”。有人可以建议可能是什么问题吗?

标签: google-drive-api

解决方案


您遇到的问题似乎主要是由于您没有使用有效的访问令牌进行操作。

客户端错误响应代码表明403 Forbidden服务器理解请求但拒绝授权。

解决方案

确定访问范围

为了获得适当的访问令牌,您应该将访问令牌响应中包含的范围与访问依赖于 Drive API 的应用程序的特性和功能所需的范围进行比较。

如果您最近更改了应用程序的范围,则需要获取一个新的访问令牌,该令牌将与您使用的新范围相对应。

可以像这样声明多个范围:

string[] scopes = new string[] { DriveService.Scope.DriveAppsReadonly,
                                 DriveService.Scope.DriveAppdata,
                                 ...
};

刷新您的访问令牌

根据Using OAuth 2.0 to Access Google APIs文档:

访问令牌的生命周期有限。如果您的应用程序需要在单个访问令牌的生命周期之外访问 Google API,它可以获得刷新令牌。刷新令牌允许您的应用程序获取新的访问令牌。

因此,为了仍然能够像以前一样执行所有操作,您需要刷新访问令牌。

参考


推荐阅读