0

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

我已经在谷歌开发者控制台中为两个地址(' http://localhost:12345 '、' http://localhost:12345/Callback '和服务器上的实际域)设置了一个 OAuth 2.0 客户端 ID: ' 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 文件夹设置了完全权限)。如果我手动将文件从本地复制到生产环境,当包含上述代码的 url 被点击时,它会被删除。

4

1 回答 1

0

要让它工作,您需要访问您的控制台(根据错误),并更新您的授权重定向 URI 以包含http://localhost:55882/authorize/

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

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

您可能想准确检查您在生产中的身份验证方式,因为它不应该通过 localhost 进行重定向。

于 2017-08-24T22:09:26.187 回答