2015-10-06 49 views
-1

我正在开发桌面电子邮件应用程序。我想下载Gmail日历。它与以下代码工作正常。但是几天以来,这不起作用。我已经提到了一些例子,但我没有得到结果。 这是我现有的代码。如何使用c#.net从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; 
} 
+2

说明“无法正常工作” – Sybren

回答

2

以下代码使用登录名和密码(ClientLogin)。据我所知,在2015年5月关闭时,您无法再使用登录名和密码访问Google API,当您说它在几天前正在进行时,我感到很惊讶。

service.setUserCredentials(AccUser, Pass); 

您应该使用的oauth2,而当你在它,你应该切换到Google Calendar API的用户版本,而不是使用旧版本的GData。

+0

@达尔姆其实我在2014年编码,然后我没有检查。我几天前检查,它不工作。你能建议我改变它或包含示例的任何链接吗? –

+0

http://www.daimto.com/google-calendar-api-authentication-with-c/ – DaImTo

+0

@DalmTo谢谢。我努力了。 我收到以下错误: 内部异常: {“无法加载文件或程序集'Google.Apis.PlatformServices,版本= 1.9.3.19381,Culture = neutral,PublicKeyToken = 4b01fa6e34db77ab'或其依赖项之一。清单定义与程序集引用不匹配(来自HRESULT的异常:0x80131040)“:”Google.Apis.PlatformServices,Version = 1.9.3.19381,Culture = neutral,PublicKeyToken = 4b01fa6e34db77ab“} –