如何添加组织对 Google 云端硬盘文件夹的访问权限?

问题描述 投票:0回答:1

如何使用 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
类型并且不与我小组中的每个人分享?

python google-drive-api google-drive-shared-drive
1个回答
0
投票

在你的展示脚本中,做如下修改怎么样?

修改后的脚本:

请将您的域名设置为

###
"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)

注:

  • 在这种情况下,它假设您有一个域,您的客户端位于 Google Workspace 中,并且您的客户端有权创建文件夹和更改权限。

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.