我正在使用分析报告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文件夹)上。如果我手动将文件从本地复制到制作,当包含上述代码的网址被击中时,它将被删除。
什么是错误?你检查过你的授权重定向URI吗? – sdhaus
@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
尝试为生产服务器创建新凭据。这是[最佳实践](https://developers.google.com/identity/protocols/OAuth2#scenarios)prod/test/staging的客户端凭据不同。这些改变还需要一段时间才能真正反映出来。希望这有助于 –