作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为开源 ASP.NET CMS Umbraco 构建一个扩展,一旦用户通过 oAuth 授权,我想从用户的帐户中获取分析。
据我所知,Google API .NET wikiw 页面上用于 oAuth 的示例 MVC 4 片段似乎仅适用于 Controller ,而不适用于 WebAPI Controller ,对吗?
AuthorizationCodeMvcApp(this, new AppFlowMetaData()).AuthorizeAsync(cancellationToken);
示例中的第一个参数期望它是常规 MVC Controller
所以我的问题实际上是,如何在考虑到 WebAPI 的情况下使用 oAuth,因为我想从 API 以 JSON 形式从 WebAPI 返回统计信息,这样我就可以使用客户端库(例如 AngularJS)来绑定(bind)JSON 返回到 HTML View ?
我很乐意提供有关如何解决此问题的任何想法、反馈或建议。
谢谢,沃伦:)
最佳答案
我已经调查了您的问题,并且已经测试了服务帐户解决方案。设置起来很棘手,但是当它运行时它就可以工作。
这是我在 webapi Controller 中使用的代码:
String serviceAccountEmail = "805395301940-cu3nhkuqi4ipa3453o276bar5u2e70lq@developer.gserviceaccount.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();
关于oauth - 如何在 WebAPI 中使用 Google Analytics oAuth?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20636290/
我是一名优秀的程序员,十分优秀!