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

Oauth 2.0 如何将oAuth与Google C#.NET API结合使用?,oauth-2.0,google-oauth,google-api-dotnet-client,Oauth 2.0,Google Oauth,Google Api Dotnet Client,我正在尝试使用谷歌的.NETAPI 由于来自Google的大多数API都需要oAuth令牌才能从中获取任何数据,因此我正在努力克服第一个障碍 我的计划是创建一个非常简单的.NET Web API,通过API列出我的Google Analytic帐户,然后我可以使用AngularJS绑定到一个漂亮的小视图,其中包含从WebAPI调用返回的JSON 我提到的问题是,似乎有很多不同的例子,我似乎无法找到任何工作。要么它过时了,要么样本项目没有编译等等 据我所知,我需要将Authenticator对象

我正在尝试使用谷歌的.NETAPI

由于来自Google的大多数API都需要oAuth令牌才能从中获取任何数据,因此我正在努力克服第一个障碍

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

我提到的问题是,似乎有很多不同的例子,我似乎无法找到任何工作。要么它过时了,要么样本项目没有编译等等

据我所知,我需要将Authenticator对象传递给BaseClient对象,该对象反过来用于任何服务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;
}
[HttpGet]
公共IEnumerable GetAccounts()
{
var baseClient=new BaseClientService.Initializer();
baseClient.ApplicationName=“谷歌统计示例”;
baseClient.Authenticator=null;//不确定如何获取oAuth令牌
AnalyticsService stats=新的AnalyticsService(baseClient);
var accounts=stats.Management.accounts.List();
var allAccounts=accounts.Execute();
归还所有账目、项目;
}

要创建验证器,您需要一个名为“Google API OAuth2客户端库”的nuget包,但我下载了一个名为“Google.API.OAuth2.v2客户端库”的nugget包。名字相似但不相同


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

要创建验证器,您需要一个名为“Google API OAuth2 Client Library”的Nugget包,但我下载了一个名为“Google.API.OAuth2.v2 Client Library”的Nugget包。名字相似但不相同


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

谢谢,我想我已经安装了相同的Nugget,需要尝试您建议的另一个。你有一个工作的例子,我可以看看请?一旦你安装了正确的软件包,你可以使用任何例子。像这样:谢谢,我试过了那个repo中的ASP.NETWebForms示例,效果非常好。我只需要尝试并弄清楚这在ASP.NET WebAPI上下文中是如何工作的。我想做的是使用Google YouTube Analytics的API,但用于我自己的YouTube频道,因此我不希望访问该网站的用户使用他们自己的详细信息验证API调用。因此,我们的目标是获得某种永久的oAuth密钥或访问令牌,这样我就可以调用API来获取频道的YouTube统计数据。这可能吗?如果可能,我应该怎么做?您可以使用身份验证服务器类型而不是用户身份验证。您可以在您的google控制台上获得私钥:var provider=new google.api.Authentication.OAuth2.DotNetOpenAuth.AssertionFlowClient(google.api.Authentication.OAuth2.googleaauthenticationserver.Description,certificate)谢谢,我想我已经安装了相同的金块,需要尝试您建议的另一个。你有一个工作的例子,我可以看看请?一旦你安装了正确的软件包,你可以使用任何例子。像这样:谢谢,我试过了那个repo中的ASP.NETWebForms示例,效果非常好。我只需要尝试并弄清楚这在ASP.NET WebAPI上下文中是如何工作的。我想做的是使用Google YouTube Analytics的API,但用于我自己的YouTube频道,因此我不希望访问该网站的用户使用他们自己的详细信息验证API调用。因此,我们的目标是获得某种永久的oAuth密钥或访问令牌,这样我就可以调用API来获取频道的YouTube统计数据。这可能吗?如果可能,我应该怎么做?您可以使用身份验证服务器类型而不是用户身份验证。您可以在google控制台上获取私钥:var provider=new google.api.Authentication.OAuth2.DotNetOpenAuth.AssertionFlowClient(google.api.Authentication.OAuth2.GoogleAuthenticationServer.Description,certificate)