문제

특정 캘린더의 이벤트 피드를 얻는 방법에 대한 긴 상세한 질문이 있었지만 게시하기 전에 솔루션을 알아 냈습니다. 그러나 솔루션이 있어도 나는이 과정에 대해 내가 무엇을 놓치고 있는지 궁금해하고있다. 단일 캘린더의 이벤트 피드 (또는 해당 피드 검색)를 얻으려면 다음을 수행합니다.

  • 인증 (분명히)
  • 달력 목록을 얻습니다 : GetCalendarListFeed ();
  • '캘린더'객체 중 하나에서 ID 속성을 가져옵니다.
  • 변경 : .../Calendar/Feeds/Default/xxx%40yyy
  • to : .../calendar/feeds/xxx%40yy/private/full
  • getCalendareventFeed ()를 해당 캘린더의 쿼리로 전달하십시오.

신분증을 조작 해야하는 이유는 무엇입니까? Zend_gdata에 대한 문서가 Google과 Zend 사이트에 모두 퍼져있는 것 같습니다. getCalendarListFeed ()의 사용 가능한 속성에 대한 참조가 좋지 않았으므로 ID 이외의 것을 가져와야할까요?

거기처럼 보인다 가지다 더 간단한 방법으로 - 여기서 내가 무엇을 놓치고 있습니까?

도움이 되었습니까?

해결책

ID를 조작 할 필요가 없습니다.

당신이 보면 프로토콜 가이드, 거기에 <link rel="alternate" .../> 원하는 URL을 포함하는 요소.

PHP 클라이언트에서는 다음을 호출 하여이 링크를 검색 할 수 있습니다.

// $entry is an instance of Zend_Gdata_Calendar_ListEntry
$link = $entry->getAlternateLink()->getHref();

또한 찾고있는 문서는 다음과 같습니다.http://framework.zend.com/apidoc/1.9/zend_gdata/calendar/zend_gdata_calendar_listentry.html

다른 팁

나는이 같은 질문에 대한 답을 찾고 있었고 결국 다음을 생각해 냈습니다.

$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$Client = Zend_Gdata_ClientLogin::getHttpClient('googleaccount','googlepass',$service);
$Service = new Zend_Gdata_Calendar($Client);

$Query = $Service->newEventQuery();
$Query->setUser('calendarid'); # As you know, you can obtain this with getCalendarListFeed()
$Query->setVisibility('public');
$Query->setProjection('full');
$Query->setOrderby('starttime');
$Query->setFutureevents('true');

처음에 나를 던진 부분은 호출의 "사용자"부분이 실제로 캘린더 ID라는 것입니다. 그런 다음 다음과 같은 작업을 수행 할 수 있습니다.

$events = $Service->getCalendarEventFeed($Query);
foreach ($events as $Event)
{
   // work with Event object here...
}

(위는 실제로 시도/캐치로 둘러싸여 있어야하지만 여기서는 너무 게으르다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top