Tengo un archivo de Hojas de cálculo de Google compartido con 1 usuario: propietario (cuenta de Gmail) y 2.º usuario: escritor (cuenta de servicio de Google como @iam.gserviceaccount.com).
Uso esta función para copiar una tabla del usuario 1 por el usuario 2 y hacer que el propietario del archivo copiado sea el usuario 1 nuevamente:
$ownerPermission = new Google_Service_Drive_Permission([ 'type' => 'user', 'role' => 'owner', 'emailAddress' => 'user1@gmail.com' ]); $requestOwnership = $service->permissions->create($newfileId, $ownerPermission, ['fields' => 'id', 'transferOwnership' => 'true']);Y todo funciona bien hasta ayer! Ahora la API de Google Drive devuelve un error: se requiere consentimiento para transferir la propiedad de un archivo a otro usuario
¿Como arreglarlo?
Esto parece estar funcionando como se esperaba según este problema del Rastreador de problemas aquí :
Siguiendo aquí, este es el comportamiento esperado, ya que actualmente Drive no admite el cambio de propiedad de los elementos que pertenecen a las cuentas de gmail.com.
Esto parece ser un cambio reciente en la API de Google. Consulte también https://developers.google.com/drive/api/guides/manage-sharing
No he probado esto, pero sugiere que debe reemplazar transferOwnership=true con role=writer y pendentOwner=true, y luego actualizar los permisos por separado como user1@gmail.com con role=owner. Sin embargo, no sé cómo haces ese segundo paso desde una cuenta de gmail.com.