php - 如何处理每次访问时都会更改的 ics 日历的 ID?

标签 php icalendar uid

我想在我的 PHP 程序的 Airbnb 日历上插入备忘录。 我用 PHP 编写了一个程序来获取和同步 Airbnb 的 iCal 数据。

<?php
$ical_url = 'https://www.airbnb.it/calendar/ical/2533404.ics?s=580a83c1bcbc0e8af72cfc62bcc2676d';
$ctx = stream_context_create(array(
'http' => array(
'method' => 'GET',
'header' => 'User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko')
)
);
$ical = file_get_contents($ical_url,false,$ctx);
echo '<pre>'.$ical.'</pre>';

我可以获取ical的数据,但是每次我想访问时,包含在事件中的UID都会改变。

这是示例。

1.首次访问

BEGIN:VCALENDAR
PRODID;X-RICAL-TZSOURCE=TZINFO:-//Airbnb Inc//Hosting Calendar 0.8.8//EN
CALSCALE:GREGORIAN
VERSION:2.0
BEGIN:VEVENT
DTEND;VALUE=DATE:20150709
DTSTART;VALUE=DATE:20150708
UID:4q8n18b59vlt--a9biqyf1iwqq@airbnb.com
DESCRIPTION:CHECKIN: 08-07-2015\nCHECKOUT: 09-07-2015\nNIGHTS: 1\nPHONE: 
 \nEMAIL: (nessun indirizzo email alias disponibile)\nPROPERTY: CASA MANI
: Castellabate dal mare\n
SUMMARY:Marco Marcigliano (4PPN2S)
LOCATION:CASA MANI: Castellabate dal mare
END:VEVENT

2.二次访问

BEGIN:VCALENDAR
PRODID;X-RICAL-TZSOURCE=TZINFO:-//Airbnb Inc//Hosting Calendar 0.8.8//EN
CALSCALE:GREGORIAN
VERSION:2.0
BEGIN:VEVENT
DTEND;VALUE=DATE:20150709
DTSTART;VALUE=DATE:20150708
UID:-q0wzyk0t5hkw-7gujduyluxdt@airbnb.com
DESCRIPTION:CHECKIN: 08-07-2015\nCHECKOUT: 09-07-2015\nNIGHTS: 1\nPHONE: 
\nEMAIL: (nessun indirizzo email alias disponibile)\nPROPERTY: CASA MANI
: Castellabate dal mare\n
SUMMARY:Marco Marcigliano (4PPN2S)
LOCATION:CASA MANI: Castellabate dal mare
END:VEVENT

所以我无法为 airbnb 事件添加备忘录。

我可以在不更改 UID 的情况下获取 iCal 数据吗? 还是除了UID还有唯一ID?

最佳答案

我建议这是一个 airbnb 问题,而不是谷歌日历问题。

其他 iCal 住宿提供商(例如 homeaway.com)提供一致的唯一 uid。

两次导出 google 日历 (calendar.google.com) 也会提供一致的唯一 uid。

我实现的解决方法是使用摘要中的 airbnb booking ref -

SUMMARY:Marco Marcigliano (4PPN2S)

并忽略他们的 uid。

关于php - 如何处理每次访问时都会更改的 ics 日历的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38193837/

相关文章:

python - 在 Python 中解析 .ics 文件中的事件

java - 如何解密在 Laravel 中使用 Crypt 加密的 Java (Android) 文本?

php - 基于 php、mysql、javascript 的多用户基于 Web 的日历

outlook - 无法取消 ical 事件(可怕的 "not supported calendar message.ics")

language-agnostic - ICalendar 和事件更新在 Outlook 中不起作用

java - 使用 POP3 服务器时生成消息 UID 背后的模式/逻辑是什么?

android - Android系统uid为0是什么意思

plone - 原型(prototype)和敏捷内容的 portal_catalog 唯一 ID

php - SQL JOIN 获取项目的名称和所有标签

php - 分层导航中的多选过滤器