У меня был долгий подробный вопрос о том, как получить канал события определенного календаря, но изображенный (я думаю), решение, прежде чем я отправил. Однако даже с решением меня оставляют, задаваясь вопросом, что я пропускаю об этом процессе. Чтобы получить канал события единственного календаря (или искать тот канал), я делаю следующее:
Почему я должен управлять идентификатором? Кажется, что документация для Zend_Gdata распространена и по сайтам Google и по Зенда. Я не определил местоположение хорошей ссылки на доступных свойствах от getCalendarListFeed (), поэтому возможно, я должен захватить что-то другое, чем идентификатор?
Кажется, что должно быть больше простого пути - что я пропускаю здесь?
Вам не нужно манипулировать идентификатором.
Если вы посмотрите на руководство по протоколу , то увидите элемент, который содержит нужный вам 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');
Часть, которая сбила меня с толку вначале, состояла в том, что "пользовательская" часть вызова на самом деле является идентификатором календаря. Затем вы можете сделать что-то вроде:
$events = $Service->getCalendarEventFeed($Query);
foreach ($events as $Event)
{
// work with Event object here...
}
(Вышеуказанное действительно должно быть заключено в попытку/привлечение, но я слишком ленив, чтобы сделать это здесь)
.