iCal:通过webcal将日期添加到日历://

问题描述 投票:0回答:1

好吧,我创建了一个litle脚本来生成iCal事件,并使用webcal协议自动将其添加到日历中。

该脚本的工作原理如下:我在服务器上托管ical-generator.php文件,并通过在开头添加网络摄像头发送包含必要信息的URL。

webcal://www.test.com/ical-generator.php?id=66038&titulo=Teste&data-inicio=20190311&data-final=20190312&local=Teste&descricao=Lorem Ipsum dolor&url=http://www.test.com/

但是,当我将事件导入日历时,此事件是唯一的,最终会被添加为新日历而不是单个事件,应将其添加到用户的现有日历中。

这是脚本:

    <?php
header("Content-type: text/calendar; charset=utf-8");
header("Content-Disposition: inline; filename=\"teste-evento-".$_GET['titulo'].".ics" ."\"");

echo "BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//TESTE//NONSGML Teste//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
UID:".$_GET['id']."-teste.com.br
ORGANIZER;CN=TESTE:MAILTO:[email protected]
SUMMARY:".$_GET['titulo']."
STATUS:CONFIRMED
DTSTART:".$_GET['data-inicio']."
DTEND:".$_GET['data-final']."
DTSTAMP:".date('Ymd').'T'.date('His')."
LOCATION:".$_GET['local']."
DESCRIPTION:".$_GET['descricao'].".\nSaiba mais em: ".$_GET['url']."
URL:".$_GET['url']."
CLASS:PUBLIC
TRANSP:TRANSPARENT
PRIORITY:5
SEQUENCE:0
X-MICROSOFT-CDO-IMPORTANCE:1
END:VEVENT
END:VCALENDAR";
php outlook icalendar webcal
1个回答
0
投票

(请注意,网络摄像头是非正式的URI(相当支持,但是官方的uri是http / s并且应该得到所有日历应用程序的支持。请参阅https://tools.ietf.org/html/rfc5545#section-3.8.4.6https://en.wikipedia.org/wiki/Webcal。)

现在,应用程序如何处理ics文件或URL通常取决于用户的操作。 EG:在Google日历中,如果单击添加日历>导入,Google将提供要导入的主日历的默认值,或允许用户从其他日历中进行选择。

然而,如果点击添加日历 - >从URL,那么谷歌日历将“订阅” - 即在“其他日历”下创建一个新日历(不能“导入”其他事件)

如果附加到电子邮件,大多数应用程序只会期待一个事件,并会提示添加到一个人的默认日历。

Double检查您在测试中所做的操作,并确保为每个事件使用UNIQUE UID,以确保应用程序重新测试,就好像它是一个新事件(或删除上一个事件)。有些人聪明地说'嘿,这是同一事件',这让测试变得混乱。

© www.soinside.com 2019 - 2024. All rights reserved.