空与我共享Google云端硬盘中的文件夹?

时间:2017-02-21 10:21:05

标签: google-api google-drive-api google-api-dotnet-client

我想要清空service.Permissions.Delete(PermissionID, fileId).Execute(); service.Files.Delete(fileId).Execute(); 我该如何清空它是我的代码而我正在使用Google Drive V3。

if #available(iOS 10.0, *) {
    UNMutableNotificationContent *objNotificationContent = [[UNMutableNotificationContent alloc] init];
    objNotificationContent.body = @"Notifications";
    objNotificationContent.badge = @([[UIApplication sharedApplication] applicationIconBadgeNumber] + 1);
    UNTimeIntervalNotificationTrigger *trigger = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:60 repeats:NO];
    UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:@"identifier" content:objNotificationContent trigger:trigger];
    UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
    [center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
        if (!error) {
        }
        else {
        }
    }];
}
else
{
    UILocalNotification *localNotif = [[UILocalNotification alloc] init];
    localNotif.fireDate = [[NSDate date] dateByAddingTimeIntervalInterval:60];
    localNotif.alertBody = @"Notifications";
    localNotif.repeatInterval = NSCalendarUnitMinute;
    localNotif.applicationIconBadgeNumber = 0;
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
}

两行都给出了权限403错误。

如果我删除MyDrive文件的时间第二行他工作正常,但与我共享文件夹未删除

1 个答案:

答案 0 :(得分:0)

你需要记住的是,与我分享不是你实际拥有的文件,这就是为什么这不起作用。

  

service.Files.Delete(FILEID).Execute();

首先获取Share with me文件夹中所有文件的列表。

var request = service.Files.List();
request.Q = "(sharedWithMe = true)";
request.Fields = "*";
var results = request.Execute();

找到您要删除的文件:

var myfile = results.Files.Where(a => a.Name.ToLower().Equals("receipt.pdf")).FirstOrDefault();

现在找到与当前经过身份验证的用户关联的该文件的权限:

var per = myfile.Permissions.Where(a => a.EmailAddress.ToLower().Equals("xxxxx@gmail.com")).FirstOrDefault();

从邮件文件中删除权限。

service.Permissions.Delete(myfile.Id, per.Id).Execute();

我测试了它并且它起作用了。您可以通过循环运行初始请求,并根据需要删除所有内容。

注意:这似乎并不适用于所有情况。我的Google驱动器上有一个文件,该文件通过似乎是一个服务帐户与我共享。我对该文件没有权限,因为我无法删除我的访问权限。我还在挖。