1

我正在使用 Google Analytics API 向我的 CMS 用户展示他们的访问者数据。所有配置文件都在我自己的帐户下,因此使用 clientlogin 和一些 Google .net 库我能够检索帐户的所有 Web id 来查询数据。现在,由于 API 已被弃用,所有对帐户的请求都返回 404。

我已经尝试了一切更新到 2.4 但没有任何成功。我该怎么办?因为我只需要用自己的帐户登录一次,而不是重定向用户接受我的应用程序..

使用服务帐户?我也有一个服务器 api 密钥,但我不知道如何实现新的 API。太糟糕了,还没有.net 库。欢迎任何建议!

4

2 回答 2

2

如果有人需要使用 webrequest 和 clientlogin 从新的分析 api 管理提要中获取他们的表 id。这是我的(快速)代码(感谢 Bengel):

string queryString = String.Format("https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email={0}&Passwd={1}&service=analytics&source={2}", __username, __pass, "yourlog");
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(queryString);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    string responseContent = new StreamReader(response.GetResponseStream()).ReadToEnd();
    string authCode = responseContent.Substring(responseContent.LastIndexOf("Auth=") + 5);

    queryString = "https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profiles";
    request = (HttpWebRequest)WebRequest.Create(queryString);
    request.Headers.Add("Authorization", String.Format("GoogleLogin auth={0}", authCode));
    response = (HttpWebResponse)request.GetResponse();
    XDocument doc = XDocument.Load(new StreamReader(response.GetResponseStream()));

    var entries = (from item in doc.Root.Elements("{http://www.w3.org/2005/Atom}entry")
                   select new
                   {
                       tableid = item.Elements("{http://schemas.google.com/analytics/2009}property").ElementAt(4).Attribute("value").Value,
                       profileid = item.Elements("{http://schemas.google.com/analytics/2009}property").ElementAt(1).Attribute("value").Value
                  });
于 2012-08-31T11:21:36.290 回答
1

您遇到的主要问题是他们删除了 API 2.3 版中包含的帐户供稿。这意味着有关帐户、网络资源、配置文件和目标的任何类型的信息都无法使用旧的客户端库。它的其余部分,也就是数据查询,应该仍然可以工作,您应该根据迁移文档升级它们。

要解决您获得配置文件的问题,您必须切换到他们的管理 api。最简单的解决方法是淘汰旧的获取配置文件的方法,并用他们的管理 api 的简单宁静实现来替换它。您图书馆的其余部分(例如获取访客/访问)应该仍然可以正常工作。

这是一个小例子:

1) 使用ClientLogin获取身份验证令牌。

2) 通过向https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profiles发送 GET 请求来获取配置文件 xml 。确保在请求中包含授权标头request.Headers.Add("Authorization", String.Format("GoogleLogin auth={0}", clientLoginAuthToken));

3) 使用 XDocument 解析结果!

于 2012-08-28T20:23:33.060 回答