gpt4 book ai didi

oauth - 如何在 WebAPI 中使用 Google Analytics oAuth?

转载 作者:行者123 更新时间:2023-12-01 17:48:01 26 4
gpt4 key购买 nike

我正在为开源 ASP.NET CMS Umbraco 构建一个扩展,一旦用户通过 oAuth 授权,我想从用户的帐户中获取分析。

据我所知,Google API .NET wikiw 页面上用于 oAuth 的示例 MVC 4 片段似乎仅适用于 Controller ,而不适用于 WebAPI Controller ,对吗?

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

示例中的第一个参数期望它是常规 MVC Controller

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

所以我的问题实际上是,如何在考虑到 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com