如何使用c#.net从gmail下载日历

本文关键字:gmail 下载 日历 net 何使用 | 更新日期: 2023-09-27 18:16:19

我正在开发桌面电子邮件应用程序。我想下载Gmail日历。使用下面的代码可以正常工作。但从几天前开始,它就不起作用了。我提到了一些例子,但我没有得到结果。这是我现有的代码。

public static object GoogleCalenderData(string AccUser, string Pass)
{
    //Create a CalenderService and authenticate
    CalendarService service = new CalendarService("appname");
    service.setUserCredentials(AccUser, Pass);
    EventQuery query = new EventQuery()
    {
        Uri = new Uri(String.Format("http://www.google.com/calendar/feeds/{0}/private/full", service.Credentials.Username)),
        StartTime = DateTime.Now
    };
    EventFeed myResultsFeed = service.Query(query);
    var googleEvents = myResultsFeed.Entries.Cast<EventEntry>();
    string val = string.Empty;
    val = string.Empty;
    foreach (var googleEvent in googleEvents)
    {
        val += "Title: " + googleEvent.Title.Text;
        val += "'n";
        val += "Contents =" + googleEvent.Content.Content;
        val += "'n";
        val += "Location = " + googleEvent.Locations.First().ValueString;
        val += "'n";
        val += "StartTime = " + googleEvent.Times.First().StartTime;
        val += "'n";
        val += "EndTime = " + googleEvent.Times.First().EndTime;
        val += "'n";
    }
    return val;
}

如何使用c#.net从gmail下载日历

下面的代码使用登录名和密码(ClientLogin)。你不能再使用登录和密码来访问谷歌api,据我所知,它是在2015年5月关闭的,当你说它直到几天前才开始工作时,我很惊讶。

service.setUserCredentials(AccUser, Pass);

你应该使用oauth2,当你在它你应该切换到谷歌日历API的用户版本,而不是使用旧的gData版本。