我想在我的 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/