将Google云端硬盘文件从公开更改为私有

时间:2018-07-09 18:00:33

标签: google-drive-api google-oauth

我在Google云端硬盘上创建了一个公共文件,我在Python上使用了Google云端硬盘中的v3 API来获取我所有文件的列表。

现在,我想更改文件权限,以便将其设为私有,并且只能由我(所有者)看到

from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

# Setup the Drive v3 API
SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'
store = file.Storage('credentials.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store)
service = build('drive', 'v3', http=creds.authorize(Http()))

# Call the Drive v3 API
results = service.files().list(
    pageSize=10, fields="nextPageToken, files(id, name, modifiedTime, owners, permissions)").execute()
items = results.get('files', [])
if not items:
    print('No files found.')
else:
    print('Files:')
    for item in items:
        print('{0} ({1}) ({2})'.format(item['name'], item['id'], item["modifiedTime"])


Cosa = items[2]
print("--- Archivo Publico ---")
print(Cosa["permissions"])

print("---- Modifico los Permisos ----")

service.permissions().delete(fileId="ExampleID",permissionId="anyone").execute()

现在,当我执行代码时,我得到:

googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/drive/v3/files/1KHjbcJkN79cccgwywrwsBHlOuLUgtOqXZk4gvZKR1eE/permissions/anyone? returned "Insufficient Permission">

为什么?我是文件的所有者。

编辑:该文件具有2个权限。第一个是“任何人”,它使所有人都可以查看和编辑文件。第二个是我的允许,这使我成为所有者。我正在尝试删除第一个文件以将其设为私有

1 个答案:

答案 0 :(得分:0)

我不得不从以下更改de SCOPE:

SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'

SCOPES = 'https://www.googleapis.com/auth/drive'

我还删除了我的certificate.json并进行了Web身份验证。现在可以正常使用