2017-08-09 67 views
0

我正在使用谷歌驅動器php api更改文件的權限。它的工作原理,當我設定的「角色」,以「作家」,但是當我設定的「角色」向「老闆」,因爲這樣的:Google驅動器transferOwnership

$batch = $driveService->createBatch(); 
     $userPermission = new Google_Service_Drive_Permission(array(
      'type' => 'user', 
      'role' => 'owner', 
      'transferOwnership' => 'true', 
      'emailAddress' => 'c*****@c*******.org' 
     )); 
     $request = $driveService->permissions->create(
      $fileId, $userPermission, array('fields' => 'id')); 
     $batch->add($request, 'user2'); 
$results = $batch->execute(); 

我得到一個錯誤「transferOwnership」必須設置爲true 。但是,似乎我已經將transferOwnership設置爲true!我究竟做錯了什麼?

exception 'Google_Service_Exception' with message '{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "forbidden", 
    "message": "The transferOwnership parameter must be enabled when the permission role is 'owner'.", 
    "locationType": "parameter", 
    "location": "transferOwnership" 
    } 
    ], 
    "code": 403, 
    "message": "The transferOwnership parameter must be enabled when the permission role is 'owner'." 
} 

回答

1

transferOwnership應該設置爲查詢參數而不是請求的主體。

實施例:

$batch = $driveService->createBatch(); 
$userPermission = new Google_Service_Drive_Permission(array(
    'type' => 'user', 
    'role' => 'owner', 
    'emailAddress' => 'c*****@c*******.org' 
)); 
$request = $driveService->permissions->create(
    $fileId, 
    $userPermission, 
    array('fields' => 'id', 'transferOwnership' => 'true')); 
$batch->add($request, 'user2'); 
$results = $batch->execute(); 
相關問題