使用curl将公共gdrive文件复制到我的帐户

时间:2019-02-12 19:29:13

标签: powershell curl

我试图通过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   “ {}”-压缩

0 个答案:

没有答案