Google api 将google驱动器文件访问权限设置为;任何拥有访问链接的人”;给403。如何解决?

Google api 将google驱动器文件访问权限设置为;任何拥有访问链接的人”;给403。如何解决?,google-api,google-drive-api,Google Api,Google Drive Api,发出API请求 403响应 我想以编程方式设置对我的google drive文件的权限,就像任何人都有google drive可共享链接一样,这样他就可以阅读了。将角色设置为读卡器并将类型设置为任何人后,尝试api会给出403。任何帮助都将不胜感激。请参考上面的图片 这是我的HTTP GET响应的一部分 "userPermission":{ "kind":"drive#permission", "etag":"\"v8V6DvTBE_bfiGlEO9jLL

发出API请求

403响应

我想以编程方式设置对我的google drive文件的权限,就像任何人都有google drive可共享链接一样,这样他就可以阅读了。将
角色
设置为
读卡器
并将
类型
设置为
任何人
后,尝试api会给出
403
。任何帮助都将不胜感激。请参考上面的图片

这是我的HTTP GET响应的一部分

    "userPermission":{  
      "kind":"drive#permission",
      "etag":"\"v8V6DvTBE_bfiGlEO9jLLdDEcEE/vrb4MS7MSuazJcKlWO78yMuKxF0\"",
      "id":"me",
      "selfLink":"https://www.googleapis.com/drive/v2/files/1Vnp6v2VSE3sHKb9H9ChJPc8VPozuVtyd/permissions/me",
      "role":"owner",
      "type":"user"
   },
   "originalFilename":"1200px-Arriva_T6_nearside.JPG",
   "fileExtension":"JPG",
   "md5Checksum":"52f04535ea275c8be7ad87853a49fb87",
   "fileSize":"343589",
   "quotaBytesUsed":"343589",
   "ownerNames":[  
      "Dev Drive"
   ],
   "owners":[  
      {  
         "kind":"drive#user",
         "displayName":"Dev Drive",
         "isAuthenticatedUser":true,
         "permissionId":"00918695921514386946",
         "emailAddress":"devdrive@finetechlk.net"
      }
   ],
仅表示当前经过身份验证的用户没有对该文件的权限。用户不能对没有权限的文件执行操作

我建议您对正在使用的文件Id进行检查,并查看当前经过身份验证的用户对该文件拥有哪些权限。您还可以看到文件的所有者

注意,我正在测试的文件是由另一个用户与我共享的。我没有它的所有权,因此无法对它创建权限

  {
   "kind": "drive#user",
   "displayName": "xxx",
   "photoLink": "xxx",
   "me": false,
   "permissionId": "x642264676680223635",
   "emailAddress": "xxxxx@gmail.com"
  }
将文件设置为公共不会创建公共读取链接。根据文件类型,它可能包含webViewLink,但并非所有文件类型都如此

解决方案


如何解决你的问题。找到拥有您正在使用的ID的文件的用户,并让他们插入权限。或者在当前用户拥有的文件上插入权限。

您给了他们什么链接?您有足够的权限编辑该文件吗?这不是503错误,而是403禁止。@daimt不清楚你在问什么。我没有给他们任何联系。我给他们文件id,类型和角色一个有链接的人访问什么链接?你可以';不要只给某人一个他们需要权限的文件id。文件ID可以根据您上载任何文件的方式进行更改changes@DaImTo我说的是谷歌硬盘共享链接。谢谢你指出这一点。编辑我的问题。我使用文件id尝试了HTTP GET。而且响应显示文件所有者是我。我自己创建了这个文件,但谷歌api不允许我更改该文件的权限。当你授权我的gmail帐户时,我会尝试在我的问题中添加一部分我的回答,然后确保你使用这个gmail帐户。try me表示您不拥有该文件,因此无法更改权限。你也可以用你自己的代码来做,try me只是为了测试而不是为了实际使用。
  {
   "kind": "drive#user",
   "displayName": "xxx",
   "photoLink": "xxx",
   "me": false,
   "permissionId": "x642264676680223635",
   "emailAddress": "xxxxx@gmail.com"
  }