我正在尝试通过事件ID从Google日历中检索单个CalendarEventEntry,但我无法找到方法。似乎API没有为此提供方法,但它建议使用Query对Feed日历进行查询。这样做的缺点是ID不是所考虑的参数之一。
我认为实现这一目标的一种可能方法是将CalendarEventFeed与我们的日历相关联,然后迭代生成的事件列表,如下所示:
CalendarService service = new CalendarService(applicationName);
service.setUserCredentials(userName,password);
CalendarEventFeed myFeed = service.getFeed(feedUrl, CalendarEventFeed.class);
List <CalendarEventEntry> entries = myFeed.getEntries();
for (CalendarEventEntry e : entries){
if (e.getId().equals(id)){
return e;
}
}
你知道更容易,更直接的解决方案吗?
提前致谢!
答案 0 :(得分:1)
您可以致电calendarEventEntry.getEditLink().getHref()
获取活动的网址。它实际上是日历的网址加上事件ID。
查看Data API Developer Guide代码示例。
答案 1 :(得分:0)
这些家伙的问题有基础,没有代码可以回答这个问题。在下面找到我用来回答这个问题的代码。我稍微修改了你的代码
import com.google.gdata.client.*;
import com.google.gdata.client.calendar.*;
import com.google.gdata.data.*;
import com.google.gdata.data.acl.*;
import com.google.gdata.data.calendar.*;
import com.google.gdata.data.extensions.*;
import com.google.gdata.util.*;
import java.net.*;
import java.io.*;
import java.util.List;
public class GetGoogleCalendarEventByID {
public static void main(String[] args) {
System.out.println("Before Creating CalendarService.");
CalendarService myService = new CalendarService("exampleCo-exampleApp-1.0");
System.out.println("After Creating CalendarService.");
try
{
System.out.println("Going to setUserCredentials.");
myService.setUserCredentials("email@gmail.com", "password");
URL feedUrl =
new URL("https://www.google.com/calendar/feeds/email@gmail.com/private/full");
CalendarEventFeed myFeed = myService.getFeed(feedUrl, CalendarEventFeed.class);
List <CalendarEventEntry> entries = myFeed.getEntries();
for (CalendarEventEntry e : entries){
if (e.getId().equalsIgnoreCase("http://www.google.com/calendar/feeds/email%40gmail.com/events/EventIDLastPart")){
System.out.println("Got the CalendarEventEntry: " + e.getId());
System.out.println("CalendarEventEntry has text: " + e.getPlainTextContent());
}
}
System.out.println("Finished getting Event.");
}
catch(Exception e)
{
System.out.println("Error : " + e.toString());
}
}
}
注意:feedUrl - 这是您在日历设置下找到的日历网址
事件ID的格式为http://www.google.com/calendar/feeds/email%40gmail.com/events/EventIDLastPart
e.g。
http://www.google.com/calendar/feeds/email%40gmail.com/events/ghytrueueyryrgfuur
希望有所帮助
Ngonidan