我正在寻找创建iCal Feed的细节,以便在Google日历和人群手机等应用中使用。
我目前有一个使用iCalendar类的脚本,当访问网址时,会创建一个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();
}
我希望(正如我之前提到的)创建一个feed(每个用户一个唯一的url),并且想知道这个技术问题?我以为我需要一个cronjob来为每个人生成一个calandar,然后将用户链接到这个feed,但是如果只有一个用户使用该Feed,这似乎效率非常低。
是否可以将脚本设置为仅在某人请求calandar然后再向其发送适当的calandar时运行?
有谁知道Google Calandar等多久更新一次,它是如何工作的,以及我如何测试它?
非常感谢你的时间,
答案 0 :(得分:2)
无需创建cronjob
如果您创建的脚本需要user_id
和一些auth_key
,并且在获取所有详细信息并将其解析为Feed后,它可以像这样工作
Cronjob是一种选择,以防这种类型的脚本需要服务器端密集型 然后使用Cronjob创建缓存和公共脚本,以将缓存数据部署到用户feed-reader
我认为大多数Feed都是在查询时创建的,而不是预先创建来缓存结果
您可以使用此库轻松创建Feed http://ajaxray.com/blog/php-universal-feed-generator-supports-rss-10-rss-20-and-atom
注意1:不要忘记连接大部分时间是从用户端到服务器端启动的!所以大多数情况下服务器没有通知你,但你要求服务器通知
答案 1 :(得分:1)
我会将iCal calandar类用于PHP,然后将用户链接到一个实时生成的PHP文件(可能会使用某种半小时的缓存系统来阻止它被轰炸)。
使用cronjob生成数据会对cpu的使用产生很大的影响!