Как получить один GoogleCalendar CalendarEventEntry по его идентификатору? - PullRequest
2 голосов
/ 26 января 2010

Я пытаюсь получить одну CalendarEventEntry из Календаря Google по идентификатору события, но не могу найти способ сделать это. Похоже, что API не предоставляет метод для этого, хотя он предлагает сделать запрос к календарю каналов, используя Query . Недостатком этого является то, что идентификатор не является одним из рассмотренных параметров.

Я думаю, что возможным способом добиться этого было бы связать 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;
    }
    }

Знаете ли вы более простое и понятное решение для достижения этой цели?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 26 января 2010

Вы можете получить URL события, позвонив по номеру calendarEventEntry.getEditLink().getHref(). Это на самом деле URL календаря плюс идентификатор события.

Взгляните на Руководство разработчика API данных для примеров кода.

0 голосов
/ 19 декабря 2013

У парня вопрос есть основание, не было кода, чтобы ответить на этот вопрос. Найдите ниже код, который я использовал, чтобы ответить на этот вопрос. Я немного изменил твой код

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 - это URL-адрес календаря, который вы найдете в настройках календаря

Идентификатор события имеет формат http://www.google.com/calendar/feeds/email%40gmail.com/events/EventIDLastPart

, например

http://www.google.com/calendar/feeds/email%40gmail.com/events/ghytrueueyryrgfuur

Надеюсь, это поможет

Ngonidan

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...