我编写了一些代码,以将约会从我的桌面C#应用程序导出到Google日历。我正在使用.NET的Google Calendar API。
该代码运行良好,但Web浏览器在身份验证后始终显示错误页面(尽管如此,身份验证始终是成功的)。这是我看到的消息:“无法连接。Firefox无法在localhost:xxx(任何端口)中建立与服务器的连接”。它发生在每个浏览器中。
我已经在Google控制台中使用以下参数创建了凭据: -使用Google Calendar API; -从其他UI调用API(非Web服务器) -访问用户数据。
这是我的代码:
public static CalendarService GetCalendarService(String[] Scopes, String userNameGoogle, String ApplicationName)
{
UserCredential credential;
using (var stream =
new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/calendar-dotnet-quickstart.json");
//MessageBox.Show(credPath);
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
userNameGoogle,
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
//MessageBox.Show("Credential file saved to: " + credPath);
}
// Create Google Calendar API service.
var service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
return service;
}
验证时会发生以下情况: See Authenticating Image
...,然后,重定向错误: See Redirection error Image
我花了几个小时阅读帖子,但没有结果(几乎每个人都在使用Web服务器,但不是我的情况)。
请,你能帮我吗?
答案 0 :(得分:1)
最后,经过这么多天,我得到了答案:问题出在防病毒软件(卡巴斯基免费版)上。
我用来测试的三台计算机都具有相同的防病毒功能。禁用它之后,Web浏览器重定向良好。很抱歉以前没有测试过。
我很欣赏您的答案(@ mjwills,@ Chris,@ u_1826)。非常感谢你。希望这些信息对其他人有帮助。
答案 1 :(得分:-2)
您作为回调URL http://localhost:6773/放置的路径存在吗?