如何在没有用户名/密码的情况下访问Google Analytics数据

时间:2014-01-28 15:57:40

标签: c# google-analytics

我有一个数据库,其中包含来自客户的一些谷歌分析数据。我有三个值: AuthKeyId,ProfileId和AnalyticsID。如何使用此数据从谷歌获取数据?

这是我尝试的代码,但我收到了未经授权的错误消息:

    string authToken = "XXxXXxxx_XXX_xxxx...."; // this seems to be wrong

    string feed = "https://www.google.com/analytics/feeds/data";

    string ids = "ga:XXXXXXX";       // this is the ID, the correct one
    string metrics = "ga:pageviews";
    string startDate = "2013-06-25";
    string endDate = "2013-07-25";

    //Optional:
    string sort = "-ga:pageviews";

    string feedUrl = string.Format("{0}?ids={1}&dimensions={2}&metrics={3}&sort={4}&start-date={5}&end-date={6}",
        feed, ids, dimensions, metrics, sort, startDate, endDate);

    webClient.Headers.Add("Authorization", "GoogleLogin " + authToken);
    string result = webClient.DownloadString(feedUrl);

2 个答案:

答案 0 :(得分:1)

Google分析验证令牌不会永远持续下去。必须更新。如果您拥有刷新令牌,则除非授予权限的用户撤消访问权限,否则它们不会过期。

最好的方法是使用服务帐户,因为建议使用@Petr。

还有一些步骤可以创建服务帐户并生成您需要的.p12文件。您可以在此处按照设置服务帐户的说明进行操作:Connecting to Google Analytics API in a Rails app

谷歌的代码示例似乎缺少c#竞技场,但我确实找到了这篇文章: How do I use a Service Account to Access the Google Analytics API V3 with .NET C#?

答案 1 :(得分:0)

Google API Console中创建一个Google实际需要的项目(也在GA docs中注明):

  1. 在Google Developers Console中注册您的应用程序。
  2. 授权访问Google Analytics数据。
  3. 创建Google Analytics服务对象。
  4. 希望这有帮助!