cURL Apple iCloud日历订阅链接失败

时间:2017-06-03 02:00:52

标签: php curl icloud icalendar

我一直在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获取特定于应用程序的密码的位置,但不知道如何在此处实现。

1 个答案:

答案 0 :(得分:1)

可能为时已晚,无法提供帮助,但这可能仅适用于已发布(可共享,只读)的日历。我用我的一个尝试过(并回复了$响应)并获得了我日历的所有事件。

CURLOPT_URL => 'https://p35-calendars.icloud.com/published/2/f3en8ZL-G5cgxxxxxxxxx'