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

时间:2015-10-06 13:29:23

标签: c# windows calendar gmail-api

我正在处理桌面电子邮件应用程序。我想下载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;
}

1 个答案:

答案 0 :(得分:2)

以下代码使用登录名和密码(ClientLogin)。只要我知道它已于2015年5月关闭,您就无法使用登录名和密码来访问Google API。当您说它在几天前工作时我感到很惊讶。

service.setUserCredentials(AccUser, Pass);

您应该使用oauth2,当您使用oauth2时,您应该切换到Google Calendar API的用户版本而不使用旧的gData版本。