首页 > 解决方案 > 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']);

标签: phpgoogle-apipermissionsgoogle-drive-apigoogle-api-php-client

解决方案


好的,我设法通过增加我的 php.ini 的最大执行限制来做到这一点。执行时间太长了,这就是为什么每次都没有给我同样的结果。


推荐阅读