php - 服务帐户和 Google Drive:创建文件夹
问题描述
我正在开发一个 PHP 应用程序,允许用户通过该应用程序在 Google Drive 上创建文件夹。我看不到从应用程序创建的文件夹。我已经尝试过这个答案。服务帐户设置为所有者(完全访问权限),我认为设置为此的服务帐户将允许使用该应用程序的任何人至少拥有作者、评论者和读者权限。我尝试了上面的答案,但我只能打印出来:
Google_Service_Drive_Permission Object ( [collection_key:protected] => teamDrivePermissionDetails [allowFileDiscovery] => [deleted] => [displayName] => [domain] => [emailAddress] => [expirationTime] => [id] => 16863121739429784266 [kind] => drive#permission [photoLink] => [role] => writer [teamDrivePermissionDetailsType:protected] => Google_Service_Drive_PermissionTeamDrivePermissionDetails [teamDrivePermissionDetailsDataType:protected] => array [type] => user [internal_gapi_mappings:protected] => Array ( ) [modelData:protected] => Array ( ) [processed:protected] => Array ( ) )
SetValue() 似乎没有与 Google API v3 一起使用,而是使用了 setEmailAddress()。我知道我通过查看开发人员控制台资源图访问了 Drive API,并且每当我请求资源时都可以看到峰值。
我没有收到错误,而且我还可以看到文件/文件夹 ID,只是没有看到驱动器中新创建的文件夹。还能是什么?有人能指出我正确的方向吗?
我的代码如下:
$client = new Google_Client();
$client->setAccessToken($result); //$result holds the token, using JWT
$service = new Google_Service_Drive($client);
//Insert a file
$fileMetadata = new Google_Service_Drive_DriveFile(array(
'name' => 'window',
'mimeType' => 'application/vnd.google-apps.folder'));
$file = $service->files->create($fileMetadata, array(
'fields' => 'id'));
printf("Folder ID: %s\n", $file->id);
$fileId = $file->id;
$newPermission = new Google_Service_Drive_Permission();
$value="createfolder@dummydocs.iam.gserviceaccount.com";
$type="user";
$role="writer";
$newPermission-> setEmailAddress($value);
$newPermission->setType($type);
$newPermission->setRole($role);
try {
$res= $service->permissions->create($fileId, $newPermission);
print_r($res);
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
解决方案
推荐阅读
- nativescript - 将 ios 应用程序运行到多个设备的 Nativescript Cli 6.0
- typescript - 从 TypeScript 桶索引文件导入对 Webpack v4 代码拆分/摇树有什么影响?
- python-3.x - 来自 Python 的 OpenCV 显示 JPG 和 PNG 图像的不同结果?
- python - Pygame 冻结并且对按键或尝试关闭窗口没有反应
- javascript - 是否有可能获取一个元素的 id,该元素负责使另一个元素失去焦点、内部模糊或 focusout 事件
- python - 无法从其小部件的回调中销毁 Tk 对象
- android - 为什么我的列表在重新排列项目后没有重建
- excel - 组合多个公式
- python - 如何在数据库中存储和检索 Django 会话变量?
- java - 即使遇到语句,else 语句也会继续执行