使用GData .NET Analytics API时抛出异常

时间:2012-08-24 16:24:53

标签: asp.net google-api gdata

在尝试从几天前运行良好的代码片段中获取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以检索Feed数据并将其附加到生成的密钥

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,在这种情况下,八个字符长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

2 个答案:

答案 0 :(得分:1)

我有同样的问题,看起来谷歌最近关闭了Feed。它在另一篇文章中回答。 Issue com.google.gdata.util.ResourceNotFoundException: Not Found with Google Analytic

答案 1 :(得分:0)

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

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