4

在我的 Visual Stuidio Win 表单项目中使用此代码时。

var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description, ClientId, ClientSecret);

我收到一条消息

NativeApplicationClient 不再受支持,它将在 1.7.0-beta 中删除。考虑使用新的 Google.Apis.Auth NuGet 包,它支持 .NET 4、.NET for Windows Store 应用程序、Windows Phone 7.5 和 8 以及可移植类库

我在用

安装包 Google.Apis.Authentication -pre

如果我添加 Google.apis.auth 而不是 Google.Apis.Authentication 它甚至没有 NativeApplicationClient。但是我找不到任何关于我应该使用的 NativeApplicationClient 的信息。

4

1 回答 1

3

是的,我让它工作了。

在你的项目中安装这些包

pm> install-package google.apis -pre
pm> install-package google.apis.drive.v2 -pre

添加这些使用

using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using System.IO;
using Google.Apis.Drive.v2;
using Google.Apis.Util.Store;
using System.Threading;

private void Form1_Load(object sender, EventArgs e)
 {
 UserCredential credential;
 using (var stream = new FileStream("client_secrets.json", FileMode.Open,
                                 FileAccess.Read))  {
    GoogleWebAuthorizationBroker.Folder = "Tasks.Auth.Store";
    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
    GoogleClientSecrets.Load(stream).Secrets,
    new[] { DriveService.Scope.Drive,
            DriveService.Scope.DriveFile },
    "user",
    CancellationToken.None,
    new FileDataStore("Drive.Auth.Store")).Result;
    }  

}

对于谷歌驱动器,我将创建一个驱动器服务。您发送针对该服务的所有调用。对谷歌分析同样适用。

BaseClientService service = new DriveService(new BaseClientService.Initializer()
 {
 HttpClientInitializer = credential,
 ApplicationName = "Drive API Sample",
 });

我在一篇博文中解释了这一切:http: //daimto.com/google-oauth2-csharp/

如果您弄清楚如何为它提供存储的 refrshToken 并使用它,请告诉我我仍在尝试解决这个问题。

于 2013-11-25T07:36:54.667 回答