3

我正在構建開放源代碼的ASP.NET CMS Umbraco的擴展,我希望通過oAuth授權從用戶帳戶獲取分析。如何在WebAPI中使用Google Analytics(分析)oAuth?

的例子MVC 4片斷在谷歌API .NET wikiw頁上的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,因爲我想從WebAPI返回來自API的統計數據作爲JSON,這樣我就可以使用客戶端庫(如AngularJS)來綁定返回到HTML視圖的JSON?

我很想得到任何想法,反饋或建議,我該如何解決這個問題。

謝謝, 沃倫:)

回答

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/ –

相關問題