Google Drive API v3 - 获取权限错误

时间:2016-08-03 14:26:11

标签: c# permissions google-drive-api

我不确定我错过了什么,但是我生成了" json"文件并在安装nuget包后将其连接到代码。我有权从谷歌驱动器文件夹中读取文件,但我无法创建文件。它一直给我一个权限错误。

var fileMetadata = new Google.Apis.Drive.v3.Data.File();
fileMetadata.Name = "SomeFile.txt";
fileMetadata.MimeType = "application/vnd.google-apps.drive-sdk";
var request = service.Files.Create(fileMetadata);
request.Fields = "id";
var file = request.Execute();

我已经尝试将范围更改为.Drive以及其他所有内容,但它仍然无法正常工作。我该怎么办?在安装API的nuget包之前,我是否在我生成json的网站中遗漏了这些内容?

错误: Google.Apis.dll但未在用户代码中处理

其他信息:Google.Apis.Requests.RequestError

许可不足[403]

错误[

Message[Insufficient Permission] Location[ - ] Reason[insufficientPermissions] Domain[global]

由于

2 个答案:

答案 0 :(得分:0)

在Drive API文档中,此403 error的建议操作是向用户报告需要请求这些权限才能更新文件。您可能还想检查files.get检索到的元数据中的用户访问级别,并使用该级别将UI更改为只读UI。另外,请务必按照Authorization中的步骤进行操作。

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "insufficientFilePermissions",
        "message": "The user does not have sufficient permissions for file {fileId}."
      }
    ],
    "code": 403,
    "message": "The user does not have sufficient permissions for file {fileId}."
  }
}

同样Files:create需要此范围:

https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/drive.appdata

有关详细信息,请查看此相关的SO问题,它可能会让您了解如何解决此问题。

答案 1 :(得分:0)

编辑:问题解决了。如果您遇到范围内的所有更改而发生这种情况,可能会因为任何原因而拒绝来自应该显示的对话框,并且您应该在浏览器中选择“允许”。例如,我尝试从另一台计算机,它在调试中为我加载浏览器(它只执行一次),并要求允许访问。之后,一切正常。对于拒绝访问的当前计算机,转到浏览器中的驱动器并删除API正在使用的应用程序,然后它将再次为您提供对话框。