cari

Rumah  >  Soal Jawab  >  teks badan

Gunakan API Google Drive untuk menukar pemilik fail yang dibuat melalui perkhidmatan akaun

Saya menggunakan akaun perkhidmatan untuk memuat naik fail ke folder kongsi dalam Google Drive.

Selepas beberapa lama saya mendapati bahawa fail yang dimiliki oleh akaun perkhidmatan telah menggunakan storan pemacu akaun perkhidmatan (salah saya) dan kini saya telah kehabisan ruang pemacu akaun perkhidmatan.

Saya telah mewakilkan kebenaran seluruh domain kepada akaun perkhidmatan, jadi fail baharu akan dimiliki oleh saya dan menggunakan kuota storan peribadi saya.

Lakukan ini: Wakilkan kebenaran seluruh domain kepada akaun perkhidmatan

Dan cara menggunakan kunci API untuk API Google Drive daripada PHP melalui google/apiclient

Untuk mengelakkan ralat dan kekeliruan pada masa hadapan, saya ingin menukar pemilik fail lama. Saya terus mendapat ralat ini:

{ "error": { 
    "code": 400, 
    "message": "Bad Request. User message: "You can't change the owner of this item."", 
    "errors": [ {
       "message": "Bad Request. User message: "You can't change the owner of this item."", 
       "domain": "global", 
       "reason": "invalidSharingRequest" 
    } ] 
  } 
}

Ini adalah kod saya menggunakan klien PHP

$client = new Google_Client();
$client->setApplicationName('My Name');
$client->setScopes(Google_Service_Drive::DRIVE);
$client->setAuthConfig($my_credentials);
$client->setAccessType('offline');
//$client->setSubject('my_personal_account');

$service = new Google_Service_Drive($client);

$newPermission = new Google_Service_Drive_Permission();
$newPermission->setEmailAddress('my_personal_account');
$newPermission->setType('user');
$newPermission->setRole('owner');

$service->permissions->create(
  $fileId, 
  $newPermission, 
  array("fields" => "id", "transferOwnership" => true)
);

Saya mendapat ralat yang sama tidak kira sama ada saya menggunakan setSubject dalam klien atau tidak. Saya telah mencuba menggunakan

$newPermission->setRole('writer');
$newPermission->setPendingOwner(true);

Tetapi ia tidak berjaya.

P粉680487967P粉680487967321 hari yang lalu552

membalas semua(1)saya akan balas

  • P粉571233520

    P粉5712335202024-01-07 00:10:19

    Pemilikan fail hanya boleh dipindahkan antara akaun pada domain yang sama. Ralat ini berlaku kerana akaun perkhidmatan dan akaun anda bukan milik domain yang sama.

    Jika anda mempunyai akses kepada drive kongsi dan dapat menambahkan pengguna dengan kebenaran untuk menambah fail, tambahkan akaun perkhidmatan dan biarkan ia mengalihkan fail ke drive kongsi.

    Berkaitan

    Lain-lain yang berkaitan

    balas
    0
  • Batalbalas