我试图找出如何编程在Python实现从分享你的共享文件(使用谷歌云端硬盘API V3)为防止他人解决方案描述here。
我编程方式创建一个谷歌电子表格如下:
from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient import discovery
get_credentials = ServiceAccountCredentials.from_json_keyfile_dict
credentials = get_creds(keyfile_dict=keyfile_dict, scopes=scopes)
service_sheets = discovery.build('sheets', 'v4', credentials=credentials)
service_drive = discovery.build('drive', 'v3', credentials=credentials)
# create sheet
body = {'properties': {'title': 'this is my spreadsheet title'}}
response_create = service_sheets.spreadsheets().create(body=body).execute()
但是,此电子表格是由我的开发人员帐户拥有,我不能编辑,甚至查看。然后,我想给我自己写的权限,这是我做的,如下所示:
# change permission
new_permission_w = {
'value': '[email protected]',
'emailAddress': '[email protected]',
'type': 'user',
'role': 'writer'
}
perms = service_drive.permissions()
response_perm = (perms
.create(fileId=response_create['spreadsheetId'],
body=new_permission_w,
sendNotificationEmail=False,
useDomainAdminAccess=False,
transferOwnership=False)
.execute())
我想阻止我的分享它能够与其他人分享。它看起来像有一种方法,通过API来做到这一点,如下所示:Use Google Drive API to change link sharing permissions,但我看不出如何做到这一点在Python。我试图改变烫发字典内
new_permission_w = {
'value': '[email protected]',
'emailAddress': '[email protected]',
'type': 'user',
'role': 'writer',
'setWritersCanShare': False
}
(即,添加'setWritersCanShare': False
到字典),但该API调用似乎忽略'setWritersCanShare'
键。我也试图改变API调用
response_perm = (perms
.create(fileId=response_create['spreadsheetId'],
body=new_permission_w,
sendNotificationEmail=False,
useDomainAdminAccess=False,
setWritersCanShare=False,
transferOwnership=False)
.execute())
但我得到TypeError: Got an unexpected keyword argument "setWritersCanShare"
。
我也看了,看是否有此一gpsread的解决方案,但未能找到。
我不知所措。我怎样才能通过Python使用API以编程方式防止编辑从共享?
writersCanShare
的财产用Python False
。如果我的理解是正确的,怎么样使用files.update的方法驱动API?
body = {'writersCanShare': False}
res = service_drive.files().update(fileId=response_create['spreadsheetId'], body=body).execute()
如果我误解了你的问题,我表示歉意。