iCal: добавить событие в календарь через webcal: //

Итак, я создал небольшой скрипт для генерации событий iCal и автоматического добавления их в календарь с использованием протокола webcal.

Скрипт работал следующим образом: я размещаю файл ical-generator.php на сервере и отправляю URL-адрес с необходимой информацией, добавляя webcal в начале.

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";

person Marcus Vinícius    schedule 11.03.2019    source источник


Ответы (1)


(Обратите внимание, что webcal является неофициальным URI (довольно хорошо поддерживается, это правда, однако официальный uri - это http / s и должен поддерживаться всеми календарными приложениями. См. https://tools.ietf.org/html/)rfc5545#section-3.8.4.6 и https://en.wikipedia.org/wiki/Webcal.)

Теперь то, как приложение обрабатывает файл ics или URL-адрес, обычно зависит от того, что делает пользователь. НАПРИМЕР: в календаре Google, если щелкнуть добавить календарь> импорт, Google предложит ваш основной календарь по умолчанию для импорта или позволит выбрать один из других календарей.

Если, однако, щелкнуть добавить календарь -> из URL-адреса, тогда календарь Google будет «подписываться» - т.е. создать новый календарь в «других календарях» (в который нельзя «импортировать» дальнейшие события)

Если прикрепить к электронному письму, большинство приложений ожидают только одно событие и предложат добавить его в свой календарь по умолчанию.

Дважды проверьте, что вы делали во время тестирования, и убедитесь, что вы используете УНИКАЛЬНЫЙ UID для каждого события, чтобы гарантировать, что приложение повторяет тестирование, как если бы это было новое событие (или удалите предыдущее событие). Некоторые достаточно умны, чтобы сказать «эй, это то же самое событие», и это сбивает тестирование с толку.

person anmari    schedule 17.03.2019