나는 누군가를 위해 블로그를 만드는 중입니다. 그들은 많은 데이터를 가져 와서 디자인에 아주 밀접하게 통합하기를 원하므로 표준 위젯은 아니오입니다. 지금까지는 괜찮 았어.PHP로 Google 캘린더 이벤트 받기
Google 캘린더에 다양한 이벤트가있는 공개 캘린더가 있으며 다음 5 개 이벤트 ('지금'이후부터)를 가져와 이벤트 제목이 시작될 때 해당 이벤트 인스턴스, 해당 위치 및 gcal 항목에 대한 링크
내가 볼 수 있듯이 gcal 피드를 잡는 방법에는 XML, ical 또는 HTML (JSON이 포함되어 있음)이 있습니다. XML은 논리적 인 선택처럼 보입니다. 맞습니까?
XML 피드는 (원자 피드 설명 다음에) 실제로는 너무 많은 faffy HTML입니다. 이 구문 분석은 가능하지만 반복 일정 (캘린더에는 여러 가지가 있음)이 해당 이벤트의 첫 번째 인스턴스와 다음 인스턴스가 언제인지에 대한 정보 만 표시하기 때문에 뒤에서 큰 고통이됩니다.
그래서 나는 조금 더 밀도가 있습니까? XML API를 통해 해킹하고 싶은 것을 보여줄 수 있습니까?
아니면 iCal을 통해 행운을 빕니다. 필자는 PHP로 iCal을 한 번도 사용 해본 적이 없기 때문에 직접 작성한 라이브러리를 제안 해주십시오.
편집 : 대답에 덕분에, 나는 (다행히도, 는 젠드 프레임 워크의 나머지 부분에 별도의입니다) 젠드 Gdata는 팩을 다운로드했습니다. 나는이만큼 쉬웠다 필요가 일을 :
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_HttpClient');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
$service = new Zend_Gdata_Calendar();
$query = $service->newEventQuery();
$query->setUser('[email protected]');
$query->setVisibility('public');
$query->setProjection('full');
$query->setStartMin(date('Y-n-j'));
$query->setStartMax(date('Y-n-j', time() + (60*60 *24*8)));
$query->setOrderby('starttime');
try { $eventFeed = $service->getCalendarEventFeed($query); }
catch (Zend_Gdata_App_Exception $e) { return; }
foreach ($eventFeed as $event)
echo $event; // do something real here
당신에게 사건의 일주일의 가치 (예 setStartMax 독점 그래서 요구되는 미래에 8 일 설정입니다)를 얻어야한다 그.
앞으로 도움이되기를 바랍니다.
나는 묻기 전에 이것을 보았지만 그 이름에 "Zend"가 두려웠다. 이제는 내가 틀에 박힌 프레임 워크가 필요 없다고 말했어. 감사. – Oli