我在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个权限。第一个是“任何人”,它使所有人都可以查看和编辑文件。第二个是我的允许,这使我成为所有者。我正在尝试删除第一个文件以将其设为私有
答案 0 :(得分:0)
我不得不从以下更改de SCOPE:
SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'
到
SCOPES = 'https://www.googleapis.com/auth/drive'
我还删除了我的certificate.json并进行了Web身份验证。现在可以正常使用