Exception thrown when using GData .NET Analytics API

与世无争的帅哥 提交于 2019-12-20 04:19:37

问题


I am facing an issue while trying to fetch data from GoogleAnalytics API on piece of code that has been working well just a couple of days ago.

For this I am referencing the following DLL's:

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

And I am using the following code:

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

I thought it had to do with a blocking to the account I was using but it wasn't the case because I verified registering the site for another analytics account and is still not working.

This code has been working flawlessly as I've said but all of a sudden has stopped doing so yesterday.

Could you please help me figuring out what's wrong?. Maybe the way the user credentials are set has changed and I am missing something.

Thank you very much for your help.

'----Update---- I managed to make it work and now I can query the visits for a desired domain. The code goes as follows:

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

'Follow the instructions on https://developers.google.com/analytics/resources/articles/gdata-migration-guide (Create a Project in the Google APIs Console) to generate your key 'Once you have it set it as part of the querystring to request our GA service

Dim gkey As String = "key=yourkeystring"

'Set the new URI to retrieve the feed data and append it the generated key

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

'Create and authenticate on our service instance

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

'Use the profile id for the account you want to get ths visits from, you can find it
'logging in your analytics account, select the desired domain on your list (blue link) click on the administrator button and on the profiles tab find the profile
'configuration subtab, right there you will find the profile id in this case the eight characters long 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

'Use the generated datafeed based on the former query to get the visits

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

回答1:


I have the same problem and it looks like google recently shut down the feed. It is answered in another post. Issue com.google.gdata.util.ResourceNotFoundException: Not Found with Google Analytic




回答2:


Please make sure you registered your project in the APIs Console and you are sending the API Key with your requests.

If that is not the issue, inspecting the inner exception will give you more details about the error. As an alternative, you can use Fiddler to capture the HTTP request and the response. The latter will include a more descriptive error message.



来源:https://stackoverflow.com/questions/12113204/exception-thrown-when-using-gdata-net-analytics-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!