我正在使用 php google 驱动器库在 google 驱动器内创建文件夹,目前我将其权限设置为任何人,这不是我需要的,我只希望在 json 文件中提供凭据的该驱动器的所有者可以读取或我允许的特定电子邮件 chatgpt 没有给出任何正确的解决方案,请帮我重新分级。 这是代码
$driveService = initialize_google_drive_client();
$folder_name = 'test123';
// Define the folder metadata
$folderMetadata = new Google_Service_Drive_DriveFile([
'name' => $folder_name,
'mimeType' => 'application/vnd.google-apps.folder',
]);
// Create the folder in Google Drive
$folder = $driveService->files->create($folderMetadata, [
'fields' => 'id',
]);
if ($folder) {
// Set permissions for the folder to make it public
$permission = new Google_Service_Drive_Permission([
'type' => 'anyone',
'role' => 'reader',
]);
$driveService->permissions->create($folder->id, $permission);
}
chatgpt 代码在这里
if ($folder) {
// Remove any existing permissions for 'anyone' (optional)
$driveService->permissions->delete($folder->id, 'anyone');
// Set permissions for specific email addresses
$emailAddresses = ['[email protected]', '[email protected]'];
foreach ($emailAddresses as $email) {
$permission = new Google_Service_Drive_Permission([
'type' => 'user',
'role' => 'writer', // You can also use 'reader' or other roles as needed.
'emailAddress' => $email,
]);
$driveService->permissions->create($folder->id, $permission);
}
}
您做错了,credentials.json 应该由 you 开发人员创建,这违反了 google TOS 给出您的 credential.json 的做法。
credentials.json 未链接到用户,它链接到 Google 开发者控制台上的项目,并用于请求用户授权。
对应用程序进行身份验证并授予其访问其数据的权限的用户是将创建文件的用户,因此您不需要为它们设置权限。