生成并发送自动将事件添加到用户日历的 .ics 文件
Generating and sending .ics file that automatically adds an event to a user's calendar
现在我们正在使用 icalendar gem 生成我们通过电子邮件发送的 ics 文件。
虽然这确实通过电子邮件为用户提供了一个方便的“添加到我的日历”按钮,但它也不会自动将事件添加到用户的日历中,因此用户仍然必须自己执行该手动步骤。
有什么方法可以让活动自动添加到用户的日历中吗?这一直很难找到解决方案。
def add_calendar_event
@cal = Icalendar::Calendar.new
@cal.event do |e|
e.dtstart = start_time
e.dtend = end_time
e.summary = 'Organized Appointment'
e.organizer = organizer_email
e.attendee = user_email
e.description = 'random string'
e.status = 'CONFIRMED'
end
@ics_var = { mime_type: 'text/calendar; charset=UTF-8; method=REQUEST', content: @cal.to_ical }
end
这需要对日历有更多的了解。
他们使用 .ics
文件作为事件的格式,但日历要求用户将这些事件添加到他们的日历中。
对于纯自动化,您必须要求用户“使用 {Google/Outlook/ETC} 进行身份验证”并提供“授权 read/write 访问应用程序”。
然后您就可以自动将活动添加到日历中了。
另一种方法是创建一个 calendar RSS Feed 并指示用户将您的 RSS 提要导入他们的日历。您可以使 URL 对用户唯一,需要一个 API 令牌或其他东西,这样它就不是纯粹的 public.
现在我们正在使用 icalendar gem 生成我们通过电子邮件发送的 ics 文件。
虽然这确实通过电子邮件为用户提供了一个方便的“添加到我的日历”按钮,但它也不会自动将事件添加到用户的日历中,因此用户仍然必须自己执行该手动步骤。
有什么方法可以让活动自动添加到用户的日历中吗?这一直很难找到解决方案。
def add_calendar_event
@cal = Icalendar::Calendar.new
@cal.event do |e|
e.dtstart = start_time
e.dtend = end_time
e.summary = 'Organized Appointment'
e.organizer = organizer_email
e.attendee = user_email
e.description = 'random string'
e.status = 'CONFIRMED'
end
@ics_var = { mime_type: 'text/calendar; charset=UTF-8; method=REQUEST', content: @cal.to_ical }
end
这需要对日历有更多的了解。
他们使用 .ics
文件作为事件的格式,但日历要求用户将这些事件添加到他们的日历中。
对于纯自动化,您必须要求用户“使用 {Google/Outlook/ETC} 进行身份验证”并提供“授权 read/write 访问应用程序”。
然后您就可以自动将活动添加到日历中了。
另一种方法是创建一个 calendar RSS Feed 并指示用户将您的 RSS 提要导入他们的日历。您可以使 URL 对用户唯一,需要一个 API 令牌或其他东西,这样它就不是纯粹的 public.