我试图通过Gdrive API使用简单的ps1脚本和Windows的unix-tools将公共gdrive文件复制到我的帐户中。 (卷曲)。 计算出所有必需的令牌,然后开始复制,下载,删除我之前复制的文件。 问题是,我发现公共共享文件具有不同的权限
“功能”:{“ canCopy”:true,“ canEdit”:false}, “ editable”:假,“ copyable”:真,
例如,喜欢此链接:
drive.google.com/open?id=1ArIfiMSmBdlZQUm1cgHi8RRjhSCh8Rym
通过api请求,这可以正常工作,但是如果我尝试使用此权限复制文件
“功能”:{“ canCopy”:假,“ canEdit”:假}, “ editable”:错误,“ copyable”:错误,
drive.google.com/open?id=1cHAsF0D8zEp3LbVB4LmEQbJ3LdU8Cj7i
我得到:
"reason": "forbidden",
"message": "Insufficient permissions for the specified parent.",
"locationType": "other",
"location": "parent.permissions" }],
“代码”:403, “ message”:“指定的父级权限不足。 } }
但是在我的浏览器中,我可以右键单击taht文件并简单地进行复制。 因此,似乎无法通过api请求实现。 但是我该如何通过curl / http请求(使用存储的cookie或某物)来做到这一点?
$ UID ='clientID.apps.googleusercontent.com'
$ skey ='clientsecret'
$ readtoken =(获取内容“ $ PSScriptRoot \ refreshtoken.txt”)
这是从存储的refreshtoken创建一个新的accesstoken
$ token = curl -d “ client_id = $ UID&client_secret = $ skey&refresh_token = $ readtoken&grant_type = refresh_token” https://accounts.google.com/o/oauth2/token | grep access_token
$ string = $ token.TrimStart(“
"access_token
”:`“”)$ cleantoken = $ string.TrimEnd(“`”,“)
$ drivefile =读取主机-提示“将链接放在此处” $ driveID = $ drivefile.Substring(33)
$ LINKS = curl-请求POST “ https://www.googleapis.com/drive/v2/files/ $ driveID / copy” --header “授权:Bearer $ cleantoken” --header“接受: application / json“ --header” Content-Type:application / json“ --data “ {}”-压缩