我想知道,是否有任何可用于将文件上传到谷歌驱动器的解决方案。就像我有一个应用程序,用户可以上传他们的文档。我需要为用户添加一个选项,以便将此文档上传到他们的谷歌硬盘。因此,拥有Gmail帐户的每个用户都可以将文档上传到他们的g盘。我已经尝试了一些谷歌的解决方案,但这允许将文件上传到创建此g驱动器应用程序的单个用户。你可以看到下面的代码。如果有任何面向用户的解决方案,请告诉我。
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "clientid",
ClientSecret = "key",
},
new[] { DriveService.Scope.Drive },
"user",CancellationToken.None).Result;
// Create the service.
var service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Drive API Sample",
});
File body = new File();
body.Title = "My document";
body.Description = "A test document";
body.MimeType = "text/plain";
byte[] byteArray = System.IO.File.ReadAllBytes(Server.MapPath( "document.txt"));
System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);
FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, "text/plain");
request.Upload();
File file = request.ResponseBody;
答案 0 :(得分:1)
您必须使用OAuth2身份验证集成代码,以便从客户端授权您的应用,并将授权令牌发送到服务器。 可以在Oauth 2.0 Documentation for .Net Client Library
中找到MVC4和Google Drive API Client Library 1.4+的更新示例答案 1 :(得分:1)
“我尝试了一些谷歌的解决方案,但是允许将文档上传到创建此g驱动器应用的单个用户”
你确定吗?大多数已发布的Google示例应用都使用用户OAuth来访问授权用户的驱动器。只有在查看与服务帐户相关的页面时,才会上传到应用程序帐户。答案 2 :(得分:1)
我也遇到了同样的问题。我是在第一次上传后设置_state=null
来解决的。是的,每当我们点击sharetodrive时,它会一次又一次地向我们询问许可。但是需要保持约束(相关用户应该将他的文件上传到Google云端硬盘上)。