我尝试在Visual Studio 2013中创建一个C#Winforms应用程序以连接到Google云端硬盘。
我下载了Nuget软件包,并使用Google Developer页面上的示例代码创建了一个测试项目,它可以运行!我不得不去创造我的秘密和钥匙等,一切顺利。
它将我的测试文本文件上传到我的Google云端硬盘帐户。大。 在初始上传当然,身份验证打开了一个浏览器窗口,我必须授予我的应用程序权限才能访问Google云端硬盘,所有这些都没问题。
但是,我希望能够将测试文件上传到其他Google云端硬盘帐户。但无论我做什么,此测试代码只会上传到我默认的Google云端硬盘帐户,这是我从PC上访问的三个帐户之一。 我尝试在浏览器中打开Google云端硬盘,注销我的主帐户,登录其他帐户,以及浏览器打开时运行我的测试代码...但它仍然只会上传到我的默认Google默认Google驱动。
我如何选择'我想用我的代码登录的Google云端硬盘帐户?
我了解这是关于连接到经过身份验证的帐户'但我在我的电脑上使用不同的Google云端硬盘帐户进行身份验证,这没什么区别。
我的测试代码示例如下。有人可以对此有所了解吗?
在下面示例的第8行,我初始化凭据,我想如果我替换了"用户"带有我想要的目标Google云端硬盘帐户的电子邮件地址的字符串,它会上传到该帐户,但它并不关心我放在这里的内容。
UserCredential credential;
using (var filestream = new FileStream("client_secrets.json",
FileMode.Open, FileAccess.Read))
{
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(filestream).Secrets,
new[] { DriveService.Scope.Drive },
"user",
CancellationToken.None,
new FileDataStore("DriveCommandLineSample")).Result;
}
// Create the service.
var service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "BackupApp",
});
Google.Apis.Drive.v2.Data.File body = new Google.Apis.Drive.v2.Data.File();
body.Title = "My document 4";
body.Description = "A test document 4";
body.MimeType = "text/plain";
byte[] byteArray = System.IO.File.ReadAllBytes("document4.txt");
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);
FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, "text/plain");
request.Upload();
Google.Apis.Drive.v2.Data.File file = request.ResponseBody;