代码之家  ›  专栏  ›  技术社区  ›  Senseful

如何构建到谷歌日历事件的链接?

  •  0
  • Senseful  · 技术社区  · 6 年前

    如果我 have the event ID of a Google Calendar event 例如:

    4htgpmm1hmak744r0kbkdcodar@google.com

    如何构造一个URL来查看Google日历界面中的事件详细信息?

    例如,如果我去一个谷歌日历事件,我会看到一个这样的网址:

    https://calendar.google.com/calendar/r/eventedit/NGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw

    我能运行什么函数/算法 4htgpmm1hmak744r0kbkdcodar@google.com NGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw ?

    奖励:如果还有一个快捷方法可以在 CalendarEvent 通过谷歌应用程序脚本。例如,如果有一个方法 getUrl() 就像有一个 getId() 方法。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Senseful    6 年前

    由于同一事件可以存在于多个日历中(例如,通过邀请其他人参加),因此事件ID不是足够的信息。

    要构造一个URL,您需要两个事件ID( refresher for how find it )和日历ID(有关如何查找的说明,请参阅下面的)。 You'll then need to encode 两者都是base64,最后你会得到一个有效的谷歌日历事件链接。

    对于以下说明,假设我们有一个事件event1,它同时存在于calendars、calendara和calendarb中。

    在Google日历界面中,您可以查看以下任意组合:

    • 日历中的事件1
    • 日历中的事件1

    让我们分配以下ID:

    • 事件1 id:4htgpmm1hmak744r0kbkdcodar@google.com
    • 日历ID:eugu9kan1ddi1pmi6sk3ib56g@group.calendar.google.com
    • 日历b id:afd3zeuguouepmi32s5i56g@group.calendar.google.com

    要构造事件URL,请执行以下操作:

    1. 得到 event-id ,它是没有 @google.com

      例如,对于事件1,我们有 4htgpmm1hmak744r0kbkdcodar

    2. 得到 calendar-id ,这是具有 @group.calendar.google.com 换成 @g

      例如,对于金盏花,我们有 eugu9kan1ddi1pmi6sk3ib56g@g

    3. 将这两个值中间加上一个空格。

      <event-id> <calendar-id>
      

      例如,对于Event1+Calendara,我们有:

      4htgpmm1hmak744r0kbkdcodar eugu9kan1ddi1pmi6sk3ib56g@g
      
    4. 将值编码为base64(例如on https://www.base64decode.org ):

      NGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw
      
    5. 现在可以将此值附加到 https://calendar.google.com/calendar/r/eventedit/

      https://calendar.google.com/calendar/r/eventedit/NGh0Z3BtbTFobWFrNzQ0cjBrYmtkY29kYXIgZXVndTlrYW4xZGRpMXBtaTZzazNpYjWoNmdAZw
      
    6. 你完了!该URL将带您进入Google界面中的日历事件。


    如何查找日历ID

    如果您需要有关如何查找日历ID的说明…

    要查找日历ID:

    1. 转到日历设置
    2. 向下滚动,直到找到日历ID字段。

      这可能是以 @group.calendar.google.com网站 ,您的电子邮件地址或其他值。

    如果您在查找日历ID时遇到问题,另一个可能有帮助的工具是 adding the eventdeb=1 parameter to the URL 故障排除信息 一个事件,然后寻找 organizer participant 值,这两个值都包含日历ID。