【发布时间】:2015-02-13 11:27:24
【问题描述】:
我有一个使用 adsense api 的报表应用程序。 我正在使用 GoogleWebAuthorizationBroker.AuthorizeAsync 进行身份验证。 当我在本地运行它时,它工作正常,权限请求窗口打开,在我授予访问权限后一切正常 我的问题是当我将它部署到生产服务器并在 IIS 上运行时,GoogleWebAuthorizationBroker.AuthorizeAsync 会永远挂起。 我的猜测是它试图打开服务器上的授权窗口并且无法做到这一点。 我没有编写这个实现,它已经投入生产一段时间了,它曾经工作得很好。 我不确定发生了什么以及是否发生了某些变化,但它现在不起作用。 我四处冲浪并尝试了不同的方法,机器人都没有奏效。 当我尝试使用 GoogleAuthorizationCodeFlow 并将 AccessType 设置为“离线”并使用提供的 URI 时,它仍然无法正常工作。 我也尝试使用服务帐户,但后来我了解到它们不支持 adsense。 下面是代码示例
var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = ConfigurationManager.AppSettings["AdSenseClientId"],
ClientSecret = ConfigurationManager.AppSettings["AdSenseClientSecret"]
},
new string[] { AdSenseService.Scope.Adsense },
"xxxxxxxx@gmail.com",
CancellationToken.None).Result;
// Create the service.
adSenseService = new AdSenseService(new BaseClientService.Initializer
{
HttpClientInitializer = credential,
ApplicationName = "My API Project"
});
var adClientRequest = adSenseService.Adclients.List();
var adClientResponse = adClientRequest.Execute();
如果有一个示例代码可以解决这个问题,我会非常高兴。 我看到了这篇文章 (ASP.NET MVC5 Google APIs GoogleWebAuthorizationBroker.AuthorizeAsync works locally but not deployed to IIS),但它没有代码示例,对我没有帮助。
提前谢谢你。
【问题讨论】:
-
你找到解决方案了吗?
-
也很想听听您是否知道这一点
标签: c# adsense-api