公开共享团队驱动器中的文件

Sharing file in team drive publicly

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

$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。服务账号上传文件,所以应该有更新这些权限的权限,但是好像不行。如果重要的话,服务帐户是共享驱动器上的贡献者。任何指导将不胜感激,如果需要,我可以用更多代码进一步更新我的 post。

原来我把参数放错地方了。为了得到我想要的东西,我使用了这个

$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);