首页 > 解决方案 > 公开共享团队云端硬盘中的文件

问题描述

我一直在尝试设置我通过代码通过服务帐户上传到共享驱动器的文件的权限,以便该文件是公开可见的,不幸的是,到目前为止我尝试的一切似乎都不起作用。将文件上传到共享驱动器可以正常工作,但不能公开访问。我在下面创建我的许可。请注意,以下调用被推迟。

$permissions = new Google_Service_Drive_Permission([
                'type' => 'domain',
                'domain' => '[DOMAIN]',
                'role' => 'reader',
                'allowFileDiscovery' => false,
                'supportsAllDrives' => true,
                'transferOwnership' => true,
                'fields' => '*'
            ]);
$service->permissions->create($status['id'], $permissions);

$status['id'] 在所有文件块上传后返回,我打印了它以确保它是正确的文件 id。服务帐户上传文件,因此它应该有权更新这些权限,但它似乎不起作用。如果重要,服务帐户是共享驱动器上的贡献者。任何指导将不胜感激,如果需要,我可以使用更多代码进一步更新我的帖子。

标签: phpgoogle-drive-apigoogle-api-php-clientgoogle-workspaceservice-accounts

解决方案


事实证明我把参数放在了错误的位置。为了得到我想要的,我用了这个

$params = [
             'supportsAllDrives' => true
          ];
$service->permissions->create($status['id'], new Google_Service_Drive_Permission([
                    'role' => 'reader',
                    'type' => 'domain',
                    'domain' => '[DOMAIN]',
                    'allowFileDiscovery' => false
                ]), $params);
$service->permissions->create($status['id'], $permissions);

推荐阅读