【问题标题】:Exception thrown when using GData .NET Analytics API使用 GData .NET Analytics API 时引发异常
【发布时间】:2012-08-31 14:07:08
【问题描述】:

我在尝试从 GoogleAnalytics API 获取几天前运行良好的代码的数据时遇到问题。

为此,我引用了以下 DLL:

Google.GData.Analytics.dll
Google.GData.Client.dll
Google.GData.Extensions.dll

我正在使用以下代码:

Dim visits As String = String.Empty
Dim username As String = "myuser@mydomain.com"
Dim pass As String = "mypassword"

Const dataFeedUrl As String = "https://www.google.com/analytics/feeds/data"
Dim query As AccountQuery = New AccountQuery()
Dim service As AnalyticsService = New AnalyticsService("MyWebAnalyticsService")
service.setUserCredentials(username, pass)
Dim accountFeed As AccountFeed = service.Query(query) ''----------> Exception thrown in this line: GDataRequestException Execution of request failed: https://www.google.com/analytics/feeds/accounts/default

我认为这与我正在使用的帐户被阻止有关,但事实并非如此,因为我已验证为另一个分析帐户注册了该网站,但仍然无法正常工作。

正如我所说,这段代码一直在完美运行,但昨天突然停止了。

您能帮我找出问题所在吗?也许用户凭据的设置方式已经改变,我遗漏了一些东西。

非常感谢您的帮助。

'----更新---- 我设法让它工作,现在我可以查询所需域的访问。代码如下:

Dim visits As String = String.Empty
Dim username As String = "myuser@mydomain.com" 
Dim pass As String = "mypassword"

'按照https://developers.google.com/analytics/resources/articles/gdata-migration-guide(在 Google API 控制台中创建项目)上的说明生成您的密钥 '一旦你把它设置为查询字符串的一部分来请求我们的 GA 服务

Dim gkey As String = "key=yourkeystring"

'设置新的 URI 以检索提要数据并将其附加到生成的密钥

Dim dataFeedUrl As String = "https://www.google.com/analytics/feeds/data?" & gkey   

'在我们的服务实例上创建和验证

Dim service As AnalyticsService = New AnalyticsService("MyAnaliticsService")
service.setUserCredentials(username, pass)  

'使用您想要获得访问的帐户的个人资料 ID,您可以找到它
'登录您的分析帐户,在列表中选择所需的域(蓝色链接) 单击管理员按钮,然后在配置文件选项卡上找到配置文件
'配置子选项卡,在这种情况下,您会在此处找到配置文件 id,8 个字符长 id 12345678

Dim query1 As DataQuery = New DataQuery(dataFeedUrl)
With query1            
    .Ids = "ga:12345678" 
    .Metrics = "ga:visits"
    .Sort = "ga:visits"
    .GAStartDate = DateTime.Now.AddMonths(-1).AddDays(-2).ToString("yyyy-MM-dd")
    .GAEndDate = DateTime.Now.ToString("yyyy-MM-dd")
    .StartIndex = 1
End With

'使用基于前一个查询生成的数据馈送来获取访问量

Dim dataFeedVisits As DataFeed = service.Query(query1)

For Each entry As DataEntry In dataFeedVisits.Entries
    Dim st As String = entry.Title.Text
    Dim ss As String = entry.Metrics(0).Value
    visits = ss
Next

【问题讨论】:

  • 我想获取可用的个人资料详细信息.. 你知道如何获取这些详细信息吗???我试图让他们,但不能。无论如何,使用它我解决了我的异常。现在我需要了解更多细节...
  • 查看我整理此问题的其他帖子:stackoverflow.com/questions/12241277/… 希望对您有所帮助。

标签: asp.net google-api gdata


【解决方案1】:

我遇到了同样的问题,看起来 google 最近关闭了提要。在另一个帖子中回答。 Issue com.google.gdata.util.ResourceNotFoundException: Not Found with Google Analytic

【讨论】:

  • 很棒的用户1623663。我正在研究它。非常感谢。
【解决方案2】:

请确保您在 APIs Console 中注册了您的项目,并且您正在发送 API 密钥和您的请求。

如果这不是问题,检查内部异常将为您提供有关错误的更多详细信息。作为替代方案,您可以使用 Fiddler 来捕获 HTTP 请求和响应。后者将包含更具描述性的错误消息。

【讨论】:

  • 嗨克劳迪奥。我现在正尝试以这种方式发送修改后的请求:google.com/analytics/feeds/…。但是我得到了同样的错误。也许错误显示,因为我不确定用于检索分析数据的唯一 ID (ids=ga:myganumber),我记得这个数字与 UA-xxxxxxxx-x 不同,我在连接后在 .NET 代码上得到了它到 entry.ProfileId.Value 对象上的远程服务器,但由于我无法连接,我无法再获得它,所以我如何获得这个数字并且我的重写请求是否正确?谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
相关资源
最近更新 更多