3

Я создаю расширение для ASP.NET с открытым исходным кодом CMS Umbraco, где я хочу получить аналитику из учетной записи пользователя после авторизации через oAuth.Как работать с Google Analytics oAuth в WebAPI?

Пример фрагмента MVC 4 на странице API для API API .NET для oAuth, похоже, работает только с контроллером, а не с контроллером WebAPI, насколько я могу судить, это правильно?

AuthorizationCodeMvcApp(this, new AppFlowMetaData()).AuthorizeAsync(cancellationToken); 

Первый параметр в примере ожидает, что это будет обычный MVC контроллер

https://code.google.com/p/google-api-dotnet-client/source/browse/Src/GoogleApis.Auth.Mvc4/OAuth2/Mvc/AuthorizationCodeMvcApp.cs

Так что мой вопрос, действительно, как я работаю с OAuth с WebAPI в виду, как я хотите вернуть статистику из API как JSON из WebAPI, чтобы я мог использовать библиотеку на стороне клиента, такую ​​как AngularJS, чтобы привязать JSON к HTML-представлению?

Я хотел бы получить любые идеи, отзывы или предложения о том, как я могу это решить.

Спасибо, Уоррена :)

ответ

0

Я посмотрел в вашу проблему и я протестировал решение учетной записи службы. Это сложно настроить, но когда он работает, он работает.

Это код, который я использовал в контроллере WebAPI:

String serviceAccountEmail = "[email protected]account.com"; 
var cert = HttpContext.Current.Server.MapPath("/key.p12"); 
var certificate = new X509Certificate2(cert, "notasecret", X509KeyStorageFlags.Exportable); 

ServiceAccountCredential credential = new ServiceAccountCredential(
    new ServiceAccountCredential.Initializer(serviceAccountEmail) 
    { 
     Scopes = new[] { AnalyticsService.Scope.Analytics } 
    }.FromCertificate(certificate)); 

var service = new AnalyticsService(new BaseClientService.Initializer() 
{ 
    HttpClientInitializer = credential 
}); 

//var ga = service.Data.Ga.Get("ga:31335471", "2013-01-01", "2013-01-31", "ga:visits"); 

// Not Working Currently in Beta 
//var ga = service.Data.Realtime.Get("ga:31335471", "ga:activeVisitors"); 

var ga = service.Management.Profiles.List("~all", "~all"); 
return ga.Execute(); 
+0

О, и вы используете API-интерфейс в режиме реального времени в контроллере, но в настоящее время это в бета-тестирования. https://developers.google.com/analytics/devguides/reporting/realtime/v3/ –

 Смежные вопросы

  • Нет связанных вопросов^_^