Google Analytics Reporting API - 无法在生产服务器上启动浏览器

时间:2017-08-23 22:24:30

标签: c# google-analytics google-analytics-api google-reporting-api

我正在使用分析报告API v4(c#)。在我的本地机器上,一切正常,但在网络服务器上没有生产。

我已在google开发者控制台中为两个地址(“http://localhost:12345”,“http://localhost:12345/Callback”和服务器上的实际域设置了OAuth 2.0客户端ID:'{{ 3}}','http://example.com')

我不认为错误与我的代码有关。而且我也从在线资源中读取了我的json,因此它与用户读/写问题无关。我已经在生产服务器上的项目中设置了对App_Data文件夹的完全访问权限。这是:

var path = Server.MapPath("~/App_Data");

var client = new WebClient();

var stream = client.OpenRead(https://api.myjson.com/bins/blahblah987654);

var loginEmailAddress = ConfigurationManager.AppSettings["AnalyticsReporting.Email"];

return await GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        new[] { AnalyticsReportingService.Scope.Analytics },
        loginEmailAddress, CancellationToken.None,
        new FileDataStore(path, fullPath: true));

在我的本地计算机上,在此行创建一个文件:new FileDataStore(path, fullPath: true));但不在服务器上(即使我已将完全权限设置为App_Data-folder)。如果我手动将文件从本地文件复制到生产文件,则在包含上述代码的网址被删除时会被删除。

1 个答案:

答案 0 :(得分:0)

要使其发挥作用,您需要访问console(根据错误),并更新您的授权重定向URI以包含http://localhost:55882/authorize/

请注意,这可能需要大约15分钟才能上线。

虽然您已设置example.com和example.com/Callback,但错误是指重定向进行身份验证的实际URI为http://localhost:55882/authorize/

您可能想要确切地检查您在生产中的身份验证方式,因为它不应该通过本地主机重定向。