我目前正在研究在网页上显示多个 Google 日历的事件列表的可能性。目前,我正在使用适用于 WordPress 的 Google 日历活动插件来显示网站上的活动(开发网站位于防火墙后面,因此我无法共享链接);但我想看看是否有任何简单的方法可以为每个单独的事件动态生成 ICS 文件。
我们希望允许网站访问者将单个事件添加到他们的日历中,但 Google 日历数据 API 似乎只提供以 ICS 格式下载整个日历的选项。我尝试简单地将带有 eid(事件 ID)的查询字符串附加到 ICAL 提要地址的末尾,但这仍然会打开标准的 Google ICAL 提要,其中包括日历中当前包含的所有事件。
我对从头开始动态构建 ICS 文件有些熟悉,并且过去曾经做过一次,从本地 Perl 日历程序中提取事件并为每个事件生成 ICS 文件;但如果已经设置了任何预构建的 API 或 PHP 类来从各个 Google 日历事件构建 ICS 文件,我更愿意使用它们。
它是如此简单,实际上只是一个页面,试试这个:(当然,你需要替换你自己的变量......)
<?php
/*
* generates calendar ics file
*/
if(
empty($_GET['summary']) ||
empty($_GET['dtstart']) ||
empty($_GET['dtend'])
){
header ("Location: /diary/this-week") ;
exit();
}
header("Content-type: text/calendar");
header("Content-Disposition: attachment; filename=".urlencode($_GET['summary']).'-'.time().".ics");
header("Pragma: no-cache");
header("Expires: 0");
echo 'BEGIN:VCALENDAR
VERSION:2.0
PRODID:councilsites
METHOD:PUBLISH
BEGIN:VEVENT
URL:'. htmlentities( $_GET['url'] ) .'
UID:'. htmlentities( $_GET['url'] ) .'
SUMMARY:'. htmlentities( $_GET['summary'] ) .'
DTSTAMP:'. date('Ymd\THis\Z') .'
DTSTART:'. htmlentities( $_GET['dtstart'] ) .'
DTEND:'. htmlentities( $_GET['dtend'] ) .'
LOCATION:'. htmlentities( $_GET['location'] ) .'
END:VEVENT
END:VCALENDAR';
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)