Google c#Api,从v2.3更改为v3

Google c#Api,从v2.3更改为v3,c#,api,google-analytics,google-api,google-authentication,C#,Api,Google Analytics,Google Api,Google Authentication,我有以下代码可以使用C#v2.3 api查询google analytics: string username = "SAMPLE@SAMPLE.COM"; string pass = "PASS"; string gkey = "?key=XXXXXXXXXXXXXXXXXXXXXXXXXXX"; string dataFeedUrl = "https://www.google.com/analytics/feeds/data" + gkey; AnalyticsS

我有以下代码可以使用C#v2.3 api查询google analytics:

string username = "SAMPLE@SAMPLE.COM";
string pass = "PASS";
string gkey = "?key=XXXXXXXXXXXXXXXXXXXXXXXXXXX";

string dataFeedUrl = "https://www.google.com/analytics/feeds/data" + gkey;            

AnalyticsService service = new AnalyticsService("API Sample");
service.setUserCredentials(username, pass);

DataQuery query1 = new DataQuery(dataFeedUrl);

query1.Ids = "ga:34197921";
query1.Dimensions = "ga:medium,ga:campaign,ga:date,ga:isMobile,ga:isTablet,ga:searchKeyword,ga:hostname";
query1.Metrics = "ga:visits,ga:visitors,ga:visitBounceRate,ga:goalStartsAll,ga:goalCompletionsAll,ga:goal1Starts,ga:goal1Completions,ga:goal2Starts,ga:goal2Completions,ga:goal3Starts,ga:goal3Completions,ga:goal4Starts,ga:goal4Completions,ga:adCost,ga:totalValue";
query1.Sort = "ga:date,ga:hour";
query1.NumberToRetrieve = 50;    

query1.GAStartDate = new DateTime(2012, 1, 2).ToString("yyyy-MM-dd");
query1.GAEndDate = DateTime.Now.ToString("yyyy-MM-dd");
query1.StartIndex = 1;
DataFeed dataFeedVisits = service.Query(query1);

foreach (DataEntry entry in dataFeedVisits.Entries)
{
.... 
}
我想升级较新的v3api,但发现很难在网上看到任何简单的示例,其中有人使用googleoauth进行身份验证,然后查询google分析数据

我安装以下NuGet包:安装包Google.api.Analytics.v3-Pre 在一个新的c#解决方案中,它为我提供了以下附加参考:

  • Google.api
  • Google.api.Analytics.v3
  • Google.api.Auth
  • Google.api.Auth.PlatformServices
  • Google.api.PlatformServices
  • log4net
  • Json
  • 便携式
我看过这篇文章,它运行的代码与我需要运行的代码相似:

但是,本文中的任何代码都无法使用NuGet中引用的google库进行解析

我错过了什么,我如何才能完成这张照片。如何进行身份验证并将我的查询运行到google analytics

感谢谷歌没有一个简单的在线教程来支持他们的.net库


提前感谢您的建议

使用v3客户端库访问Google Analytics真是太棒了。我唯一没有解决的问题是如何向它发送我存储在数据库中的refreshtoken。我一直在用它在Pc上为我存储的那个

请求自动验证:所有客户端scret内容都存储在client_secret.json中。您可以从google API控制台下载该文件。它将弹出一个浏览器窗口,如果它没有批准,如果它有,它将继续

private void Form1_Load(object sender, EventArgs e)
{
 UserCredential credential;
 using (var stream = new System.IO.FileStream("client_secret.json", System.IO.FileMode.Open, System.IO.FileAccess.Read))
 {
  credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
  GoogleClientSecrets.Load(stream).Secrets,
  new[] { AnalyticsService.Scope.AnalyticsReadonly },
  "user", CancellationToken.None, new FileDataStore("Analytics.Auth.Store")).Result;
  }
}

现在要访问Google Analytics,您需要提供分析服务

AnalyticsService service = new AnalyticsService(new BaseClientService.Initializer() {
 HttpClientInitializer = credential,
 ApplicationName = "Analytics API sample",
 });
你所有的电话现在都将与之对抗

你的结果应该是:

DataResource.GaResource.GetRequest request = service.Data.Ga.Get(ga:34197921, new DateTime(2012, 1, 2).ToString("yyyy-MM-dd"), DateTime.Now.ToString("yyyy-MM-dd"), ""ga:visits,ga:visitors,ga:visitBounceRate,ga:goalStartsAll,ga:goalCompletionsAll,ga:goal1Starts,ga:goal1Completions,ga:goal2Starts,ga:goal2Completions,ga:goal3Starts,ga:goal3Completions,ga:goal4Starts,ga:goal4Completions,ga:adCost,ga:totalValue");
request.Dimensions = "ga:medium,ga:campaign,ga:date,ga:isMobile,ga:isTablet,ga:searchKeyword,ga:hostname";

我有一篇博文,其中列出了你可以拨打的大多数不同的电话

我也有同样的问题。我已安装nuget软件包,但遇到相同的错误“无法加载文件或程序集'Microsoft.Threading.Tasks.Extensions.Desktop,Version=1.0.16.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。系统找不到指定的文件。”我尝试删除并重新安装nuget软件包,但没有成功。因此,我最终只是搜索了Microsoft.Threading.Tasks.Extensions.Desktop.dll文件,并在net40文件夹中找到了它。我把它复制到我的bin文件夹中,然后它就工作了。

谢谢你回复我:-)你的文章对于像我这样的新手来说非常棒!在我想知道的事情上,我尝试在从NuGet安装相关软件包后运行代码,并得到以下错误:无法加载文件或程序集“Microsoft.Threading.Tasks.Extensions.Desktop,Version=1.0.16.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。你以前见过这个吗?dll肯定在那里,并在运行时正确复制到bin文件夹中。谢谢