我正在寻找创建 iCal Feed 的详细信息,以便在 Google 日历等应用程序和人们的手机上使用。
我目前有一个使用 iCalendar 的脚本类,当访问 url 时,会创建一个 ics 文件并将其发送到浏览器:
function returnCalendar() {
$filename = $this->getConfig( 'filename' );
$output = $this->createCalendar();
$filesize = strlen( $output );
if( 'xcal' == $this->format )
header( 'Content-Type: application/calendar+xml; charset=utf-8' );
else
header( 'Content-Type: text/calendar; charset=utf-8' );
header( 'Content-Length: '.$filesize );
header( 'Content-Disposition: attachment; filename="'.$filename.'"' );
header( 'Cache-Control: max-age=10' );
echo $output;
die();
}
我想(正如我之前提到的)创建一个提要(每个用户一个唯一的 URL),并且想知道其中的技术细节?我想我需要一个 cronjob 来为每个人生成一个日历,然后将用户链接到这个 feed,但是如果说只有一个用户正在使用这个 feed,这似乎非常低效。
是否可以将脚本设置为仅在有人请求日历时运行,然后向他们发送适当的日历?
有谁知道 Google 日历等更新的频率、它的工作原理以及我如何测试它?
非常感谢您的宝贵时间,
最佳答案
无需创建cronjob
如果您创建的脚本需要 user_id
和一些 auth_key
并在获取所有详细信息并将其解析到 feed 中之后,它就可以像那样工作
如果这种类型的脚本是服务器端密集型的,则可以选择 Cronjob 然后使用 Cronjob 创建缓存和公共(public)脚本将缓存数据部署到用户 feed-reader
我认为大多数提要都是在查询时创建的,而不是预先创建来缓存结果的
您可以使用此库轻松创建提要
http://ajaxray.com/blog/php-universal-feed-generator-supports-rss-10-rss-20-and-atom
注1:不要忘记连接大多数时候是从用户端发起到服务器端的!因此,大多数情况下服务器不会通知您,但您会向服务器请求通知
关于php - 如何在 PHP 中创建 iCal ics 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6661288/