Google drive api 这是补丁中的一个关键错误吗https://www.googleapis.com/drive/v2/files/fileId

Google drive api 这是补丁中的一个关键错误吗https://www.googleapis.com/drive/v2/files/fileId,google-drive-api,Google Drive Api,我有一个主驱动器,其中保存着各种文件,这些文件使用不同的权限与不同的用户共享。我遇到的问题可以通过以下步骤重现: 在主驱动器上: 插入一个名为testFile的新文件,其MimeType为application/vnd.google-apps.document 为用户1插入“写入”权限 为用户2插入“读取”权限 在user2驱动器上: 创建一个新文件夹“测试文件夹” 使用Patch命令为新文件夹分配一个新的父文件夹“测试文件夹” 共享文件testFile 将发生的情况是,user2将拥有

我有一个主驱动器,其中保存着各种文件,这些文件使用不同的权限与不同的用户共享。我遇到的问题可以通过以下步骤重现:

在主驱动器上:

  • 插入一个名为testFile的新文件,其MimeType为application/vnd.google-apps.document
  • 为用户1插入“写入”权限
  • 为用户2插入“读取”权限
在user2驱动器上:

  • 创建一个新文件夹“测试文件夹”
  • 使用Patch命令为新文件夹分配一个新的父文件夹“测试文件夹” 共享文件testFile
将发生的情况是,user2将拥有一个新权限“写入”,user2可以开始编辑共享文件

有人能解决这个问题吗

编辑:这是失败的测试

public class UserOverridesPermissionTest
{
    private string m_masterEmail;
    private string m_userEmail;

    private DriveService m_masterDrive;
    private DriveService m_userDrive;

    public UserOverridesPermissionTest(string masterDriveEmail, string userDriveEmail, GoogleDriveConfig config)
    {
        m_masterEmail = masterDriveEmail;
        m_userEmail = userDriveEmail;

        var cert = new X509Certificate2(config.PrivateKeyPath, config.KeyPassword, X509KeyStorageFlags.Exportable);

        m_masterDrive = new DriveService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = new ServiceAccountCredential(
            new ServiceAccountCredential.Initializer(config.ServiceAccountEmail)
            {
                Scopes = new[] { DriveService.Scope.Drive },
                User = m_masterEmail
            }.FromCertificate(cert))
        });

        m_userDrive = new DriveService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = new ServiceAccountCredential(
            new ServiceAccountCredential.Initializer(config.ServiceAccountEmail)
            {
                Scopes = new[] { DriveService.Scope.Drive },
                User = m_userEmail
            }.FromCertificate(cert))
        });
    }

    public void Test()
    {
        var testFile = m_masterDrive.Files.Insert(new File()
        {
            Title = "testFile",
            MimeType = "application/vnd.google-apps.document"
        }).Execute();

        m_masterDrive.Permissions.Insert(new Permission()
        {
            Value = m_userEmail,
            Role = "reader",
            Type = "user"
        }, testFile.Id).Execute();

        var testFolder = m_userDrive.Files.Insert(new File()
        {
            Title = "test folder",
            MimeType = "application/vnd.google-apps.folder",
        }).Execute();

        m_userDrive.Files.Patch(new File()
        {
            Parents = new []
            {
                new ParentReference()
                {
                    Id = testFolder.Id
                }
            }
        }, testFile.Id).Execute();

        var permissions = m_masterDrive.Permissions.List(testFile.Id).Execute();
        Assert.AreEqual("reader", permissions.Items.Single(p => p.EmailAddress == m_userEmail).Role);
    }
}

当您将“test folder”设置为“testFile”的父级时,您是以什么用户的身份执行此操作的?我使用的是user2的帐户我无法复制此操作。您可以在api资源管理器中提供示例代码或一系列步骤来演示此问题?谢谢,我们正在调查。