gpt4 book ai didi

php - 在 PHP 中获取 Google 日历事件

转载 作者:数据小太阳 更新时间:2023-10-29 01:41:09 26 4
gpt4 key购买 nike

我正在为某人创建博客。他们想要引入大量数据并将其非常紧密地集成到设计中,因此标准小部件是不可取的。到现在为止一直很好。

他们有一个公开访问的谷歌日历,上面有各种事件,我想抓取接下来的 5 个事件(从“现在”开始)并显示事件标题、事件实例开始的时间、它的位置和链接到 gcal 项。

据我所知,有三种获取 gcal 提要的选项:XML、ical 或 HTML(包含一些非常糟糕的 JSON)。 XML 似乎是合乎逻辑的选择,对吧?

好吧,XML 提要(在原子提要描述之后)实际上只是很多花哨的 HTML。解析这个是可能的,但它在背后是一个巨大的痛苦,因为重复发生的事件(其中有几个在日历上)只显示该事件的第一个实例并且(显然)没有关于下一个实例何时发生的信息。

所以我是不是有点笨?有没有一种方法可以通过 XML API 显示我想要破解的内容?

或者我会通过 iCal 获得更好的运气吗?我从来没有用 PHP 做过任何 iCal,所以如果你做过,请推荐你用来让事情变得更简单的任何库。

编辑:感谢回答,我下载了 Zend Gdata 包(谢天谢地,它独立于 Zend Framework 的其余部分)。做我需要的事情就这么简单:

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('your_user@googlemail.com');

$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 是独占的,因此需要将其设置为 future 8 天)。

希望这对以后的其他人有帮助。

最佳答案

另一种选择是使用 Zend Google Calendar 库,它是 zend 框架的一个独立部分,因此您不需要整个 zend 框架

http://framework.zend.com/manual/en/zend.gdata.calendar.html

一旦您看过示例,就不难了。

关于php - 在 PHP 中获取 Google 日历事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/852088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com