Как я могу использовать PHP для динамичной публикации файла iCal, который будет считан Google Calendar?

Что-то вроде этого должно работать на Вас:

delegate int MyDelegate(int a, int b);
public int Add(int a, int b) {
    return a + b;
}
public void InvokeMethod(Delegate method, object[] param) {
    Console.WriteLine(method.DynamicInvoke(param));
}
public Form1() {       
    InitializeComponent();
    InvokeMethod(new MyDelegate(Add), new object[] { 1, 2 });
}

Удачи!

102
задан rhodesjason 23 September 2009 в 01:16
поделиться

2 ответа

Это должно быть очень просто, если для Календаря Google не требуется *. Ics -расширение (которое потребует некоторой перезаписи URL-адресов на сервере).

$ical = "BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
UID:" . md5(uniqid(mt_rand(), true)) . "@yourhost.test
DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR";

//set correct content-type-header
header('Content-type: text/calendar; charset=utf-8');
header('Content-Disposition: inline; filename=calendar.ics');
echo $ical;
exit;

По сути, это все, что вам нужно, чтобы заставить клиента думать, что вы обслуживаете файл iCalendar, даже если могут возникнуть проблемы с кешированием, кодировкой текста и т. д. Но вы можете начать экспериментировать с этим простым кодом.

124
ответ дан 24 November 2019 в 04:32
поделиться
  1. Точный формат: http: // www. ietf.org/rfc/rfc2445.txt
  2. Согласно спецификации, он должен заканчиваться на .ics

Редактировать: на самом деле я не уверен - строка 6186 дает пример в формате именования .ics, но также заявляет, что вы можете использовать параметры URL. Я не думаю, что это имеет значение, если тип MIME правильный.

Изменить: Пример из википедии: http://en.wikipedia.org/wiki/ICalendar

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
END:VEVENT
END:VCALENDAR

Тип MIME настроен на сервер.

2
ответ дан 24 November 2019 в 04:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: