suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Verwenden Sie die Google Drive-API, um den Besitzer von Dateien zu ändern, die über den Kontodienst erstellt wurden

Ich verwende ein Dienstkonto, um Dateien in einen freigegebenen Ordner in Google Drive hochzuladen.

Nach einiger Zeit stellte ich fest, dass Dateien, die dem Dienstkonto gehörten, den Laufwerksspeicher des Dienstkontos belegten (mein Fehler) und jetzt ist mir der Laufwerksspeicher des Dienstkontos ausgegangen.

Ich habe domänenweite Berechtigungen an das Dienstkonto delegiert, sodass die neuen Dateien mein Eigentum sind und mein persönliches Speicherkontingent nutzen.

Machen Sie Folgendes: Delegieren Sie domänenweite Berechtigungen an ein Dienstkonto

Und wie man den API-Schlüssel für die Google Drive API von PHP über google/apiclient verwendet

Um zukünftige Fehler und Verwirrung zu vermeiden, möchte ich den Besitzer der alten Datei ändern. Ich erhalte ständig diesen Fehler:

{ "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" 
    } ] 
  } 
}

Dies ist mein Code mit PHP-Client

$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)
);

Ich erhalte die gleiche Fehlermeldung, unabhängig davon, ob ich setSubject im Client verwende oder nicht. Ich habe versucht,

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

Aber es hat nicht funktioniert.

P粉680487967P粉680487967354 Tage vor582

Antworte allen(1)Ich werde antworten

  • P粉571233520

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

    只能在同一域的帐户之间转移文件所有权。出现此错误的原因是服务帐户和您的帐户不属于同一域。

    如果您有权访问共享云端硬盘并且能够添加具有添加文件权限的用户,请添加服务帐户并使其将文件移至共享云端硬盘。

    相关

    其他相关

    Antwort
    0
  • StornierenAntwort