2017-08-09 9 views
0

Googleドライブの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(); 
関連する問題