使用 v3 客户端库访问 Google Analtyics 确实很棒。我唯一没有解决的是如何向它发送我存储在数据库中的刷新令牌。我一直坚持使用它在电脑上为我存储的那个。
请求身份验证:所有客户端秘密内容都存储在 client_secret.json 中,您可以从 google apis consol 下载该文件。如果没有获得批准,它将弹出一个浏览器窗口,如果获得批准,它将继续。
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";
我有一篇博客文章介绍了您可以拨打的大多数不同电话。http://daimto.com/google-analytics-api-v3-with-c/