如何使用 v3 Drive Python API 以编程方式向组织中的每个人授予对 Google Drive 上共享文件夹的访问权限?
这些文档清楚地解释了如何向特定用户授予访问权限,但这似乎不适用于授予“常规访问权限”下的整个组(例如“该组中具有链接的任何人都可以查看”)选项部分。
这是我尝试过的:
from apiclient import discovery
credentials = get_google_drive_credentials()
http = credentials.authorize(httplib2.Http())
drive_service = discovery.build('drive', 'v3', http=http)
body = {
'name': 'My Folder',
'mimeType': "application/vnd.google-apps.folder",
'supportsAllDrives': True,
'allowFileDiscovery': True,
'type': 'domain',
'domain': 'MyDomain',
}
new_folder = drive_service.files().create(body = body).execute()
虽然它成功创建了文件夹,但当我在 Google 云端硬盘上查看新文件夹时,它仍然显示为“我的云端硬盘”,由我拥有,并且与任何人共享。
为什么它忽略了
domain
类型并且不与我小组中的每个人分享?
在你的展示脚本中,做如下修改怎么样?
请将您的域名设置为
###
或 "domain": "###"
。
from apiclient import discovery
credentials = get_google_drive_credentials()
http = credentials.authorize(httplib2.Http())
drive_service = discovery.build('drive', 'v3', http=http)
# Create folder
body = {
'name': 'My Folder',
'mimeType': "application/vnd.google-apps.folder",
}
new_folder = drive_service.files().create(body=body, supportsAllDrives=True).execute()
# Create permission
res = drive_service.permissions().create(
body={
"role": "writer",
"type": "domain",
"allowFileDiscovery": True,
"domain": "###" # Please set your domain
}, fileId=new_folder["id"], supportsAllDrives=True, fields='*').execute()
print(res)