我一直在php web应用程序中使用cURL来从iCloud日历中获取ics数据,但最近它已停止工作。 JSON响应是{“reason”:“无效或缺少Origin标头”,“错误”:1} iCloud提供的链接具有webcal://协议,但它过去曾用https替换它:/ /.
这是PHP中的cURL请求:
$request = curl_init();
curl_setopt_array($request, array
(
CURLOPT_URL => 'https://p05-calendarws.icloud.com/ca/subscribe/1/D_qOGO6JavMSf055UDaLZJP3SMdywBrlw_w6JkYC1yNJK6R5oxtSOXXXXXXXXXX',
CURLOPT_POST => FALSE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => FALSE,
CURLOPT_FOLLOWLOCATION => TRUE
));
$response = curl_exec($request);
curl_close($request);
我认为这可能是Apple及其2因素身份验证的问题,他们最近一直在推广。如果这是原因,我找到了从iCloud获取特定于应用程序的密码的位置,但不知道如何在此处实现。
答案 0 :(得分:1)
可能为时已晚,无法提供帮助,但这可能仅适用于已发布(可共享,只读)的日历。我用我的一个尝试过(并回复了$响应)并获得了我日历的所有事件。
CURLOPT_URL => 'https://p35-calendars.icloud.com/published/2/f3en8ZL-G5cgxxxxxxxxx'