0

我正在使用分析报告API v4(c#)。在我的本地机器上一切正常,但没有在网络服务器上生产。Google Analytics报告API - 无法在生产服务器上启动浏览器

我已经设置了一个OAuth 2.0用户端ID在谷歌开发者控制台web应用到两个地址(“http://localhost:12345”,‘http://localhost:12345/Callback’和服务器上的实际域:‘http://example.com’,“http://example.com/Callback”)

我不认为这个错误与我的代码有关。我还从一个在线源读取我的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文件夹)上。如果我手动将文件从本地复制到制作,当包含上述代码的网址被击中时,它将被删除。

+0

什么是错误?你检查过你的授权重定向URI吗? – sdhaus

+0

@sdhaus这是我得到的errorPage:https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&response_type=code&client_id=934254096895-8bt34v7n9qs3t0kjl04gan1arjb5kkb5.apps.googleusercontent.com&redirect_uri=http:%2F%2Flocalhost :55882%2Fauthorize%2F&范围= HTTPS:%2F%2Fwww.googleapis.com%2Fauth%2Fanalytics。我不知道为什么它说:“请求中的重定向URI,http:// localhost:55882/authorize,与OAuth客户端授权的不匹配”,我在开发人员控制台中设置的唯一redirectUrs是http:// example.com和http://example.com/Callback? – user3228992

+0

尝试为生产服务器创建新凭据。这是[最佳实践](https://developers.google.com/identity/protocols/OAuth2#scenarios)prod/test/staging的客户端凭据不同。这些改变还需要一段时间才能真正反映出来。希望这有助于 –

回答

0

为了得到它的工作,你需要访问你的console(按照错误),并更新授权的重新导向URI来包括http://localhost:55882/authorize/

请注意,这可能需要大约15分钟就到了现场。

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

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

+0

我不明白为什么它试图验证http:// localhost:55882/authorize /?我没有在任何地方使用该网址.. – user3228992

相关问题