如何将oAuth与Google C#.NET API结合使用?

时间:2013-09-22 19:58:55

标签: oauth-2.0 google-oauth google-api-dotnet-client

我正在尝试使用Google提供的.NET API https://code.google.com/p/google-api-dotnet-client/ https://www.nuget.org/packages/Google.Apis.Authentication/

由于Google中的大多数API需要oAuth令牌才能从中获取任何数据,因此我很难克服这个第一道障碍。

我的计划是创建一个非常简单的.NET Web API,通过API列出我的Google Analytic的帐户,然后我可以使用它与AngularJS一起使用从我的WebAPI调用返回的JSON绑定到一个漂亮的小视图。

我提到的问题是,似乎有很多不同的例子浮出水面,似乎无法让任何工作。它的过时或示例项目都没有编译等......

根据我的理解,我需要将Authenticator对象传递给BaseClient对象,而BaseClient对象又用于任何Service API。

以下是我尝试开始工作的一个粗略示例,但目前失败并从Google的API中收到错误,因为我没有登录/传递oAuth令牌。任何人都可以给我任何指示或建议。

谢谢,沃伦

[HttpGet]
public IEnumerable<Account> GetAccounts()
{
    var baseClient              = new BaseClientService.Initializer();
    baseClient.ApplicationName  = "Google Stats Example";
    baseClient.Authenticator    = null; //Unsure how to get the oAuth token

    AnalyticsService stats      = new AnalyticsService(baseClient);
    var accounts                = stats.Management.Accounts.List();
    var allAccounts             = accounts.Execute();

    return allAccounts.Items;
}

1 个答案:

答案 0 :(得分:1)

要创建身份验证器,您需要一个名为“Google API OAuth2 Client Library”的nuget包,但我下载了一个名为“Google.Apis.Oauth2.v2 Client Library”的块包。相似的名字,但不一样。

我无法在金块页面上找到正确的一个。如果您对该包执行搜索,它将不会显示。我不得不使用Visual Studio Nugget搜索器并激活“show prerealese packages”来安装它。