我正在使用分析报告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)。如果我手动将文件从本地文件复制到生产文件,则在包含上述代码的网址被删除时会被删除。
答案 0 :(得分:0)
要使其发挥作用,您需要访问console(根据错误),并更新您的授权重定向URI以包含http://localhost:55882/authorize/
请注意,这可能需要大约15分钟才能上线。
虽然您已设置example.com和example.com/Callback,但错误是指重定向进行身份验证的实际URI为http://localhost:55882/authorize/。
您可能想要确切地检查您在生产中的身份验证方式,因为它不应该通过本地主机重定向。