我正在尝试创建一个文件夹,然后将该文件夹的ID
传递给我创建为parent
的新文件。
我有两个问题。
1 - 它创建了两个文件。一个内部根文件夹,另一个在新创建的文件夹中。
2 - 即使文件/文件夹是公开共享的,并且每个人都可以使用,它也不会返回webViewLink
。
这是我正在使用的代码:
function createPublicFolder($service, $folderName) {
$file = new Google_DriveFile();
$file->setTitle($folderName);
$file->setMimeType('application/vnd.google-apps.folder');
$createdFile = $service->files->insert($file, array(
'mimeType' => 'application/vnd.google-apps.folder',
));
$permission = new Google_Permission();
$permission->setValue('');
$permission->setType('anyone');
$permission->setRole('reader');
$service->permissions->insert(
$createdFile['id'], $permission);
return $createdFile;
}
function insertFileIntoFolder($service, $folderId, $fileId) {
$newParent = new Google_ParentReference();
$newParent->setId($folderId);
try {
return $service->parents->insert($fileId, $newParent);
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
return NULL;
}
$mainFolder = createPublicFolder($service,'New Folder');
echo isset($mainFolder['webViewLink']) ? $mainFolder['webViewLink'] : 'Not found.';
$file = new Google_DriveFile();
$file->setTitle('My document');
$file->setDescription('A test document');
$file->setMimeType('text/plain');
$data = file_get_contents('file.txt');
$createdFile = $service->files->insert($file, array(
'data' => $data,
'mimeType' => 'text/plain',
));
insertFileIntoFolder($service,$mainfolder['main_folder'],$createdFile['id']);
echo isset($createdFile['webViewLink']) ? $createdFile['webViewLink'] : 'Not found.';