Исключение при использовании GData .NET Analytics API
Я столкнулся с проблемой при попытке извлечь данные из API GoogleAnalytics для фрагмента кода, который хорошо работал всего пару дней назад.
Для этого я ссылаюсь на следующие библиотеки 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 (создать проект в консоли API Google), чтобы сгенерировать свой ключ". После того, как он будет установлен как часть Строка запроса для запроса нашего сервиса 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)
"Используйте идентификатор профиля для учетной записи, с которой вы хотите получать эти посещения, вы можете найти его
'войдя в свою учетную запись Google Analytics, выберите нужный домен в списке (синяя ссылка), нажмите кнопку администратора и на вкладке профилей найдите профиль.
'Конфигурационная вложенная вкладка, здесь вы найдете идентификатор профиля, в этом случае идентификатор длиной восемь символов 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 ответа
У меня та же проблема, и, похоже, Google недавно отключил канал. Ответ дан в другом посте. Ошибка com.google.gdata.util.ResourceNotFoundException: не найдено с помощью Google Analytic.
Убедитесь, что вы зарегистрировали свой проект в консоли API и отправляете ключ API вместе со своими запросами.
Если это не проблема, проверка внутреннего исключения даст вам более подробную информацию об ошибке. В качестве альтернативы вы можете использовать Fiddler для захвата HTTP-запроса и ответа. Последний будет содержать более описательное сообщение об ошибке.