Google drive api 从Gdrive下载文件时出现问题:403禁止错误

Google drive api 从Gdrive下载文件时出现问题:403禁止错误,google-drive-api,Google Drive Api,我有一个带有google drive文件选择器功能的网站,它允许用户从Gdrive帐户选择文件并上传到我的网站 该功能运行正常,但在过去3-4天突然停止工作,我收到错误403禁止:客户端没有权限。 有人能告诉我问题出在哪里吗?看来,您遇到的问题主要是因为您的操作没有使用有效的访问令牌 403禁止客户端错误响应代码表示服务器理解该请求,但拒绝对其进行授权 解决方案 确定访问范围 为了获得适当的访问令牌,您应该将访问令牌响应中包含的作用域与访问依赖于驱动器API的应用程序的特性和功能所需的作用域进行

我有一个带有google drive文件选择器功能的网站,它允许用户从Gdrive帐户选择文件并上传到我的网站

该功能运行正常,但在过去3-4天突然停止工作,我收到错误403禁止:客户端没有权限。
有人能告诉我问题出在哪里吗?

看来,您遇到的问题主要是因为您的操作没有使用有效的访问令牌

403禁止客户端错误响应代码表示服务器理解该请求,但拒绝对其进行授权

解决方案 确定访问范围

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

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

可以像这样声明多个作用域:

string[] scopes = new string[] { DriveService.Scope.DriveAppsReadonly,
                                 DriveService.Scope.DriveAppdata,
                                 ...
};
刷新您的访问令牌

根据文件:

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

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

参考文献

)


您好@sagargdrive,您正在刷新您的访问令牌吗?您是否向项目中添加了任何新范围?干杯您能显示访问google的代码吗?@ale13:不,代码没有刷新访问令牌。我从GoogleDriveAPI获得ResponseJSON,然后从那里我将下载文件路径发送到后端以下载文件。后端代码是用C实现的,它使用webclient get方法下载文件,这是它下载失败的地方,并给出了错误。您好@sagargdrive,如果您尝试,会得到什么结果?感谢@ale13的快速回复。我正在使用google drive api的V2,在OAuth 2.0中找不到V2端点。另一件事是,我无法访问google drive的开发者控制台,因此我不确定这是否与配置问题有关,或者google本身正在限制从后端服务器请求下载?根据,需要注意的是,驱动器API调用files.get或revisions.get不下载媒体内容,即不设置?alt=介质的查询参数将不受影响。这是否会导致下载文件问题?如果我从downloadUrl中删除?alt=媒体,我就可以下载该文件。Hello@sagargdrive,downloadUrl的寿命很短,可能会停止工作。作为替代,您应该使用webContentLink。干杯你好@ale13谢谢你的宝贵建议。我会查一查