php - Google Drive API - 设置权限时崩溃
问题描述
我正在使用 Google Drive api for php 并尝试将文件复制到特定文件夹并授予它们权限。
当我尝试用调试器毫无问题地执行它时,权限被设置为好用户。但是当我尝试“正常”执行它时,结果永远不会相同,并且在设置权限时它似乎崩溃(或超时)。
这是我的代码:
function deleteFilePermissions($fileId)
{
global $driveService;
$results = $driveService->permissions->listPermissions($fileId, array(
'fields' => 'nextPageToken, permissions(id, role, emailAddress)'
));
foreach ($results->getPermissions() as $permission) {
if ($permission->getRole() != 'owner'
&& $permission->getEmailAddress() != 'noreply@opportunities-fo-1541429464609.iam.gserviceaccount.com')
$driveService->permissions->delete($fileId, $permission->getId());
}
}
function changeFileRights($fileId, $rights, $emailAddresses)
{
global $driveService;
deleteFilePermissions($fileId);
foreach ($rights as $key => $right) {
$userPermission = new Google_Service_Drive_Permission(array(
'type' => 'user',
'role' => $right,
'emailAddress' => $emailAddresses[$key]
));
$request = $driveService->permissions->create($fileId, $userPermission, array(
'fields' => 'id',
'sendNotificationEmail' => false
));
}
}
这是函数调用:
changeFileRights($fileId, ['reader', 'writer'], ['email1@gmail.com', 'email2@gmail.com']);
解决方案
好的,我设法通过增加我的 php.ini 的最大执行限制来做到这一点。执行时间太长了,这就是为什么每次都没有给我同样的结果。
推荐阅读
- kdb - 向 Kdb 表添加特殊字符?
- android - Android单元测试:如何测试来自RxJava的retryWhen是否被称为某些数字?
- algorithm - 具有扩展单元的旅行图问题的多源 BFS
- javascript - new Date(2020, 12, 122) 应该给我一个错误
- jenkins - 如何定期运行一个 Jenkins 作业,直到另一个 Jenkins 作业正在运行
- amazon-web-services - 如何使用私有 AMI 而不是公共 AMI 编写 cloudformation
- jquery - 如何在 jQuery 中组合这两个函数?
- c++ - 为什么我使用静态向量不起作用?
- windows - corecrt_memcpy_s.h:错误 C2065:'errno':未声明的标识符
- powershell - 计算长度超过 256 个字符的文件的哈希值?