我想以编程方式设置我的google驱动器文件的权限,就像任何人都有谷歌驱动器共享链接所以他可以阅读。把role
设为reader
和type
作为anyone
后尝试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":"[email protected]"
}
],
{
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientFilePermissions",
"message": "The user does not have sufficient permissions for this file."
}
],
"code": 403,
"message": "The user does not have sufficient permissions for this file."
}
}
仅表示当前经过身份验证的用户没有该文件的权限。用户无法对他们没有权限的文件执行操作。
我建议您对正在使用的文件ID执行File.get,并查看当前经过身份验证的用户对该文件的权限。您还可以看到该文件的所有者。
请注意,我正在测试的文件是由另一个用户与我共享的。我没有它的所有权,因为无法创建它的权限。
{
"kind": "drive#user",
"displayName": "xxx",
"photoLink": "xxx",
"me": false,
"permissionId": "x642264676680223635",
"emailAddress": "[email protected]"
}
将文件设置为public不会创建公共读取链接。根据文件类型,它可能包含webViewLink,但并非所有文件类型都适用。
解
如何解决您的403.找到拥有您正在使用的ID的文件的用户并让他们插入权限。或者对当前用户拥有的文件插入权限。