簡體   English   中英

如何使用 Google drive api 和 PHP 從團隊驅動器中刪除用戶

[英]How to remove user from team drive using Google drive api and PHP

我有一個 Google 工作區帳戶,我正在創建一個 php 面板來管理團隊驅動器,我已經可以創建驅動器並添加用戶,問題是當我必須從團隊驅動器中刪除用戶時,我無法.

當我創建驅動器時,我的用戶已經以管理員身份在驅動器中,我想要做的是添加兩個用戶並從 Google 驅動器面板中刪除我的用戶,這是可能的,但我無法使用 api 刪除我的用戶。

//Create the team drive

    $requestId = $this->user->id.time();
        $client = new ApiGoogleDrive(1000);
        try {
            $teamDrive = $client->createDrive($requestId , $data["name"]);
            //var_dump($teamDrive);
            //saves the data of the created drive in the database
            $myDrive->id_user = $this->user->id;
            $myDrive->id_drive = $teamDrive->getId();
            $myDrive->request_id = $requestId;
            $myDrive->email = $data["email"];
            $myDrive->name = $data["name"];

            if (!$myDrive->save()){
                $json["message"] = $this->message->error("Oops! there was a failure creating the drive.")->render();
                echo json_encode($json);
                return;
            }
        }catch (Exception $exception){
             var_dump($exception);
             return;
        }

try {
            /**
             * add user
             * reference:https://stackoverflow.com/a/55720522/18215077 | https://developers.google.com/drive/api/v3/reference/permissions
             * Role: organizer, fileOrganizer, writer, commenter, reader
             */
            $service = $client->ServiceDrive();
            $postBody = new Google_Service_Drive_Permission();
            $postBody->setKind('drive#permission');
            $postBody->setEmailAddress($data["email"]);
            $postBody->setType("user");
            //$postBody->setRole("organizer"); // Administrador
            $postBody->setRole("fileOrganizer");
            $optParams = [
                'supportsTeamDrives' => true
            ];


            $drive_id = $teamDrive->getId();
            try {
                $service->permissions->create($drive_id, $postBody, $optParams);
                //$service->permissions->create($drive_id, $apiPostBody, $optParams);
            } catch (Google_Service_Exception $e) {
                //return abort($e->getCode());
                var_dump($e->getCode());
            }

        }catch (Exception $exception){
            var_dump($exception);
        }

但是我什至不知道從團隊驅動器中刪除用戶時從哪里開始,有人可以給我看一些示例代碼嗎?

共享驅動器權限的管理方式與任何其他文件權限相同

  • 使用方法Permissions: list指定共享 Drive 的 eid 作為fileId參數,並將supportsAllDrives設置為true並將fields設置為*
  • 這將返回一個包含相關參數的權限資源,包括權限idemailAddress的電子郵件地址
  • 找到用戶(和role )與您的搜索條件匹配的權限,並使用相應的權限id作為permissionId方法的權限 ID :刪除
  • 這將允許您刪除相應的權限 - 因此,從團隊驅動器中刪除用戶(再次,您需要將supportsAllDrives設置為true

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM