Я попытался скопировать общедоступные файлы gdrive в свою учетную запись с помощью API Gdrive с помощью простого сценария ps1 и инструментов unix для окон.(Свернуться).Сработал все необходимые токены и начал копировать, скачивать, удалять файлы, которые я копировал ранее.Проблема в том, что я обнаружил, что общедоступные общие файлы имеют разные права доступа
"Возможности": {"canCopy": true, "canEdit": false}, "editable": false, "copyable": true,
как эта ссылка, например:
drive.google.com / open? id = 1ArIfiMSmBdlZQUm1cgHi8RRjhSCh8Rym
Это нормально работает по запросу API, ноесли я попытаюсь скопировать файлы с такими разрешениями
"functions": {"canCopy": false , "canEdit": false}, "editable": false, "copyable": false ,
drive.google.com / open? Id = 1cHAsF0D8zEp3LbVB4LmEQbJ3LdU8Cj7i
Я получаю:
"reason": "forbidden",
"message": "Insufficient permissions for the specified parent.",
"locationType": "other",
"location": "parent.permissions" }],
" код": 403," message ":" Недостаточно прав для указанного родителя. "}}
Но в моем браузере я могу щелкнуть правой кнопкой мыши по файлу и просто сделать копию.Так что, кажется, просто невозможно по запросам API.Но как я могу сделать это с помощью запросов curl / http (с сохраненным файлом cookie или каким-то образом)?
$ UID = 'clientID.apps.googleusercontent.com'
$skey = 'clientsecret'
$ readtoken = (Get-Content "$ PSScriptRoot \ refreshtoken.txt")
Это для создания нового маркера доступа из сохраненного файла refreshtoken
$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 = Read-Host -Prompt 'Поместите сюда свою ссылку' $ driveID = $ drivefile.Substring (33)
$ LINKS = curl --request POST "https://www.googleapis.com/drive/v2/files/$driveID/copy" --header«Authorization: Bearer $ cleantoken» --header «Accept: application / json» --header «Content-Type: application / json» --data "{}" --compressed