gpt4 book ai didi

python - 在 Django 中发布 ics 提要

转载 作者:太空宇宙 更新时间:2023-11-03 15:28:26 25 4
gpt4 key购买 nike

我正在尝试使用 django + vobject 发布 ICS 提要。作为测试运行,我定义了以下 View :

def ical(request, user_id=None):
cal = vobject.iCalendar()
cal.add('method').value = 'PUBLISH'
cal.add('calscale').value = 'GREGORIAN'
cal.add('x-wr-calname').value = 'TestCal28'
cal.add('x-wr-timezone').value = 'Australia/Sydney'
cal.add('x-wr-caldesc').value = ''
vevent = cal.add('vevent')
vevent.add('dtstart').value = datetime.now()
vevent.add('dtend').value = datetime(2010, 7, 22)
vevent.add('dtstamp').value = datetime.now()
vevent.add('summary').value = "Test event"
icalstream = cal.serialize()
response = HttpResponse(icalstream, mimetype='text/calendar')
response['Filename'] = 'filename.ics'
response['Content-Disposition'] = 'attachment; filename=filename.ics'

因此,如果您想访问 rosters.davidmck.com/ical/,您应该得到服务 filename.ics,mimetype = text/calendar。到目前为止一切顺利。

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
PRODID:-//PYVOBJECT//NONSGML Version 1//EN
BEGIN:VEVENT
UID:20100720T073356Z-26389@Rafiki
DTSTART:20100720T173356
DTEND:20100722T000000
DTSTAMP:20100720T173356
SUMMARY:Test event
END:VEVENT
X-WR-CALDESC:
X-WR-CALNAME:TestCal28
X-WR-TIMEZONE:Australia/Sydney
END:VCALENDAR

这似乎是一个或多或少格式良好的 ICS 文件:它将导入到我尝试过的任何和所有日历应用程序,包括手动上传到谷歌日历。如果您使用 Yahoo 通过 URL 订阅它,它似乎也可以正常工作。但关键在于:Google Calendar 无法订阅。如果您尝试通过 URL 将其添加到 goocal,它只会永远显示“从 URL 导入日历”,有时会生成一条失败消息(最终)。

更令人沮丧的是,如果我只是将 filename.ics 放在某个静态文件服务位置(如 http://rosters.davidmck.com/site_media/filename.ics ),它仍然不起作用 .

据我所知,这两个位置(静态和生成的)都是外部可用的。我还尝试过将 ics 上传到不同的网络服务器,这似乎确实有效,所以我怀疑 Goocal 出于某种原因不喜欢我的网络服务器。这让我发疯,我想不出为什么。

最佳答案

我怀疑这能否解决您的问题(听起来像是服务器配置问题),但我建议您查看 django-cal为您的提要生成。它的工作方式与 django.contrib 的联合提要框架相同(阅读:很好)

关于python - 在 Django 中发布 ics 提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3288048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com