【问题标题】:Reading from calendars.icloud.com fails recently...why?最近从 calendars.icloud.com 读取失败...为什么?
【发布时间】:2021-08-19 18:33:48
【问题描述】:

我们正在运行 WordPress,其中一个非常古老的脚本会读取 iCal 日历的 URL:

$webcal = 'http://pXX-calendars.icloud.com/published/2/verylongstring';

if(!$data = file_get_contents($webcal, false, stream_context_create(array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false))))) {
                echo "<!-- could not read calendar -->\n\r";
            }

最近失败了,不知道为什么。

一年前我将 file_get_contents() 从

file_get_contents($webcal)

到

file_get_contents($webcal, false, stream_context_create(array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false)))))

因为读取失败,修改后又成功了。

当我们在浏览器中输入 $webcal URL 时,我们会收到 502 Bad Gateway Error。

也许 Apple 改变了一些东西(比如身份验证或其他)?

发生了什么,我们该如何解决?

【问题讨论】:

  • 搜索我看到的错误:“502 Bad Gateway Error 意味着您连接到的 Web 服务器正在充当从另一台服务器中继信息的代理,但它得到了错误的响应来自另一台服务器。......服务器可能过载或两台服务器之间存在网络问题,这只是一个暂时的问题”
  • @anmari:是的,我也是这么想的,但是这个“临时”已经持续了好几个星期了。
  • 试试另一个测试日历?我只是在我的 icloud 上尝试过(不是 mac 用户),只要将非官方的 webcal 替换为官方的 https 或 http rfc5545 协议,我就可以访问 ics 文件。
  • 我也看到你说这是一个非常古老的脚本。由于仅在通过浏览器窗口访问时也存在问题,因此该 url 也可能是旧的?检查是否有等价的新url?
  • 日历 -> caldev URI 子域更改为我修复了它。

标签: wordpress icalendar


【解决方案1】:

现在可以使用,但我尝试过使用不同的 URL:

$webcal = 'http://pXX-caldav.icloud.com/published/2/verylongstring'

而不是

$webcal = 'http://pXX-calendars.icloud.com/published/2/verylongstring';

遗憾的是,我不知道 为什么 现在可以使用,并且不适用于旧 URL。也许 Apple 或使用此 iCal 的客户改变了一些东西。 pXX-calendars 版本可能已被弃用,没有人知道...?

【讨论】:

  • 我的用户也突然无法添加日历。非常感谢新网址。在进行 CalDAV 请求之前,我现在将“calendars.icloud.com”替换为“caldav.icloud.com”,它似乎正在工作。
  • @mark:太好了。你知道为什么正确的 URL 发生了变化吗?
  • 不,对不起!不知道为什么这会改变。虽然我相信 caldav.icloud.com 网址已经使用了一段时间,而 calendars.icloud.com 只是一个别名。
  • 它改变了,因为苹果决定改变它,并决定以破坏现有访问的方式这样做。这只是一个 DNS 名称,他们可以轻松地添加 CNAME 以将旧地址别名为新地址,但他们选择不这样做,而是选择默默地破坏现有功能。
猜你喜欢
  • 2017-10-13
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多