J'utilise l'API Google Drive en C# pour copier, changer de propriétaire et supprimer toutes les permissions d'un document, voici comment je procède :
File file = User1DriveService.Files.Copy(fileWithTitleChanged, OriginalFile.Id).Fetch()
//new owner permission
Permission newOwnerPermission = new Permission();
newOwnerPermission.Value = User2Email;
newOwnerPermission.Type = "user";
newOwnerPermission.Role = "owner";
newOwnerPermission.WithLink = false;
User1DriveService.Permissions.Insert(newOwnerPermission, file.Id).Fetch();
//remove all permissions, using User2 DriveService
permissionList = User2DriveService.Permissions.List(file.Id).Fetch();
foreach (Permission CurrentPermission in permissionList.Items)
{
User2DriveService.Permissions.Delete(file.Id, CurrentPermission.Id).Fetch();
}
//update name and folder for User2
File FileCopyProperties = new File();
FileCopyProperties.Parents = newParentReferenceList; //folder in User2 drive
FileCopyProperties.Title = NewFileTitle;
User2DriveService.Files.Update(FileCopyProperties, file.Id).Fetch();
Tout fonctionne bien, sauf que Utilisateur 1 voit toujours le document dans son Drive. Ce n'est pas toujours le cas, mais il finit toujours par s'afficher, parfois quelques heures après le processus. De plus, j'ai effectué une fausse insertion/suppression de permission d'utilisateur sur ces documents copiés à l'aide de l'API, les documents disparaissent du Drive de User1 mais réapparaissent quelques heures plus tard. Je ne peux même pas accéder à ces documents à l'aide de l'API à partir de User1. Lorsque je clique sur ces documents à partir de User1, il est indiqué que je n'ai pas l'accès et que je dois le demander.
Tout se passe bien du côté de l'utilisateur 2.
Il ne s'agit pas d'un problème de cache du navigateur, car j'ai tout effacé et j'ai changé de navigateur et même d'ordinateur à plusieurs reprises.