php - 谷歌驱动器设置权限后获取可共享链接
问题描述
我想通过谷歌提供的 php 客户端为谷歌驱动器上的zip 文件生成一个可共享的链接。
使用 Google Drive 的 php 客户端,我可以设置权限(通过查看驱动器 gui 中的文件权限来确认):
$config = [
'type' => 'anyone',
'role' => 'reader',
'withLink' => true,
//'allowFileDiscovery' => false
];
$tempPermission = new Google_Service_Drive_Permission($config);
$ret = $this->service->permissions->create($file, $tempPermission);
echo '<pre>';
print_r($ret);
$files = $this->service->files->get($file);
print_R($files);
但是我不确定从这里去哪里获取物理网址。
这是设置 perm 后文件对象的输出:
Google_Service_Drive_DriveFile Object
(
[collection_key:protected] => spaces
[appProperties] =>
[capabilitiesType:protected] => Google_Service_Drive_DriveFileCapabilities
[capabilitiesDataType:protected] =>
[contentHintsType:protected] => Google_Service_Drive_DriveFileContentHints
[contentHintsDataType:protected] =>
[copyRequiresWriterPermission] =>
[createdTime] =>
[description] =>
[driveId] =>
[explicitlyTrashed] =>
[exportLinks] =>
[fileExtension] =>
[folderColorRgb] =>
[fullFileExtension] =>
[hasAugmentedPermissions] =>
[hasThumbnail] =>
[headRevisionId] =>
[iconLink] =>
[id] => 1CU_nTm06ATlf2s54890oY62NyEzCGgyf
[imageMediaMetadataType:protected] => Google_Service_Drive_DriveFileImageMediaMetadata
[imageMediaMetadataDataType:protected] =>
[isAppAuthorized] =>
[kind] => drive#file
[lastModifyingUserType:protected] => Google_Service_Drive_User
[lastModifyingUserDataType:protected] =>
[md5Checksum] =>
[mimeType] => application/zip
[modifiedByMe] =>
[modifiedByMeTime] =>
[modifiedTime] =>
[name] => restorepoint_2019_08_02_07_32_57.zip
[originalFilename] =>
[ownedByMe] =>
[ownersType:protected] => Google_Service_Drive_User
[ownersDataType:protected] => array
[parents] =>
[permissionIds] =>
[permissionsType:protected] => Google_Service_Drive_Permission
[permissionsDataType:protected] => array
[properties] =>
[quotaBytesUsed] =>
[shared] =>
[sharedWithMeTime] =>
[sharingUserType:protected] => Google_Service_Drive_User
[sharingUserDataType:protected] =>
[size] =>
[spaces] =>
[starred] =>
[teamDriveId] =>
[thumbnailLink] =>
[thumbnailVersion] =>
[trashed] =>
[trashedTime] =>
[trashingUserType:protected] => Google_Service_Drive_User
[trashingUserDataType:protected] =>
[version] =>
[videoMediaMetadataType:protected] => Google_Service_Drive_DriveFileVideoMediaMetadata
[videoMediaMetadataDataType:protected] =>
[viewedByMe] =>
[viewedByMeTime] =>
[viewersCanCopyContent] =>
[webContentLink] =>
[webViewLink] =>
[writersCanShare] =>
[internal_gapi_mappings:protected] => Array
(
)
[modelData:protected] => Array
(
)
[processed:protected] => Array
(
)
)
如果有人能弄清楚如何设置从生成时间起一小时过期的权限(在有关 php 客户端的文档中找不到任何有关此的信息),则可以加分。
解决方案
我找到了解决方案。需要这样做:
$files = $this->service->files->get($file,array("fields"=>"webViewLink"));
print_R($files);
其中填充:webViewLink
推荐阅读
- python-3.x - 验证正确安装 tensorflow 时出错
- laravel - 无法与主机 smtp.gmail.com 建立连接 [网络无法访问 #101]
- c# - UWP 指定的缓冲区索引不在缓冲区容量之内
- android - 我的 StateButton 状态没有更新我的视图
- javascript - 为什么 Whatsapp 和 Javascript 返回相同 unicode 字符串的不同长度?
- python - Python 将 \) 替换为 )
- vala - Vala:如何将指针传递给外部代码?
- python - 如何使用 fastai 实现 sklearns StratifiedKfold?
- redhat - 添加新文件系统时阻止特殊提示
- typescript - 如何在 TypeScript Chai 中访问响应文本?