C#桌面应用程序。 如何将文件上传到Google云端硬盘的简单示例

是否有任何桌面应用程序的代码示例如何授权Google Drive服务并上传文件?

目前我有:

var parameters = new OAuth2Parameters { ClientId = ClientCredentials.ClientId, ClientSecret = ClientCredentials.ClientSecret, RedirectUri = ClientCredentials.RedirectUris[0], Scope = ClientCredentials.GetScopes() }; string url = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); // Open url, click to allow and copy secret code parameters.AccessCode = secretCodeFromBrowser; OAuthUtil.GetAccessToken(parameters); string accessToken = parameters.AccessToken; // So, there is the access token 

但接下来的步骤是什么? 正如我从示例中看到的,我应该获得IAuthenticator实例并将其传递给DriveService类的构造函数…如何获取IAuthenticator的实例? 如果我的上述代码是正确的…提前谢谢。

以下是C#中用于将文件上传到Google云端硬盘的完整命令行示例:

 using System; using System.Diagnostics; using DotNetOpenAuth.OAuth2; using Google.Apis.Authentication.OAuth2; using Google.Apis.Authentication.OAuth2.DotNetOpenAuth; using Google.Apis.Drive.v2; using Google.Apis.Drive.v2.Data; using Google.Apis.Util; namespace GoogleDriveSamples { class DriveCommandLineSample { static void Main(string[] args) { String CLIENT_ID = "YOUR_CLIENT_ID"; String CLIENT_SECRET = "YOUR_CLIENT_SECRET"; // Register the authenticator and create the service var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description, CLIENT_ID, CLIENT_SECRET); var auth = new OAuth2Authenticator(provider, GetAuthorization); { Authenticator = auth }); File body = new File(); body.Title = "My document"; body.Description = "A test document"; body.MimeType = "text/plain"; byte[] byteArray = System.IO.File.ReadAllBytes("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; Console.WriteLine("File id: " + file.Id); Console.ReadLine(); } private static IAuthorizationState GetAuthorization(NativeApplicationClient arg) { // Get the auth URL: IAuthorizationState state = new AuthorizationState(new[] { DriveService.Scopes.Drive.GetStringValue() }); state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl); Uri authUri = arg.RequestUserAuthorization(state); // Request authorization from the user (by opening a browser window): Process.Start(authUri.ToString()); Console.Write(" Authorization Code: "); string authCode = Console.ReadLine(); Console.WriteLine(); // Retrieve the access token by using the authorization code: return arg.ProcessUserAuthorization(authCode, state); } } } 

更新:此快速入门示例现已在https://developers.google.com/drive/quickstart上提供