我一直在尝试设置我通过代码上传到服务帐户的共享驱动器上的文件的权限,以便该文件是公开可见的,不幸的是,到目前为止,我尝试过的所有操作似乎都无法正常工作。将文件上载到共享驱动器可以正常工作,但不能将其公开访问。我在下面创建我的权限。请注意,以下呼叫被推迟。
$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。该服务帐户上载了文件,因此它应具有更新这些权限的权限,但似乎不起作用。如果重要的话,服务帐户就是共享驱动器上的贡献者。任何指导将不胜感激,如果需要,我可以使用更多代码进一步更新我的帖子。
答案 0 :(得分:0)
原来,我把参数放在错误的位置。为了得到我想要的东西,我用了这个
$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);