How to build html link to a google calendar event?
使用Google日历API v3,我在Google日历中添加了一个事件。 现在我想建立一个html链接,以便有人可以点击并查看日历事件。
这是我尝试过的:
href看起来像:
问题是我得到401错误"需要授权"
如何根据Google日历ID构建查看/编辑日历活动的链接?
有一种方法!要查看公共日历活动,请使用以下表单的链接:
1 | https://www.google.com/calendar/event?eid={event-id}&ctz={timezone} |
其中{event-id}是唯一的事件ID,{timezone}是其中一个时区。
以下是一个示例:指向特定公共日历活动的链接。
如果您拥有此事件来自的日历的编辑权限,您将能够编辑该事件并查看访客列表。否则,您只需查看有关该事件的公共信息。
由于可能很难确定事件ID,因此这是一个书签,当您编辑其详细信息页面时,该书签会生成指向您的Google日历事件的链接:
1 | javascript:(function(){ try { window.prompt('Shareable link to this event:','https://www.google.com/calendar/event?eid='+document.getElementsByClassName('ep')[0].getAttribute('data-eid')) } catch (e) {alert("Use this bookmarklet to get a shareable link to a Google Calendar event when editing its Details page.")}})() |
此书签的一个版本适用于新的(截至2017年)Google日历用户界面:
1 2 3 4 5 | javascript:(function(){ window.prompt('Shareable link to this event:', 'https://www.google.com/calendar/event?eid='+ window.location.href.split("/").pop().split("?")[0]) })() |
(也可能有用,如何链接到公开Goog??le日历的特定日期:
1 | https://www.google.com/calendar/embed?src={calendar-id}&mode=day&dates={yyyymmdd}%2F{yyyymmdd} |
其中{calendar-id}是日历的ID,{yyyymmdd}是您要链接的日期。
可选参数包括时区以及是否显示各种项目,例如:
1 | &ctz=Asia/Taipei&showNav=0&showPrint=0&showCalendars=0 |
示例:链接到公共日历的单日。)
以下是构建链接的HTML:
事件URL不是日历URL。
此链接带来了解释:Google Calender v3
构建此URL的方法是:
1 | GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId |
其中
希望这是有帮助的。
我想发布这个,因为它与被问到的问题相关,当我尝试执行以下操作时,这篇文章会出现。
我试图生成Google活动的唯一目的是将其添加到其他人的日历中,而不是保存到任何特定的日历中。我在这里找到了一个例子,我现在正试图找出它接受的URL参数。
1 | https://www.google.com/calendar/render?action=TEMPLATE&text=PRP+Due&dates=20141106T120000Z/20141106T120000Z&details&location&trp=false |
按事件ID查看Google日历事件。
您可以使用以下示例:
1 | https://www.google.com/calendar/event?eid={event-id}&ctz={timezone} |
印度TimeZone的示例:
1 | https://calendar.google.com/calendar/event?eid=ZjVicWczYWpndmh0ZmdtYmd0cXFxZWc3czggdTJoZmoybGg0aDcwbmhzMzV2c25pamd1dG9AZw&ctz=Asia/Kolkata |
当创建Google日历事件时,在响应中我们获得了
1 | window.open(response.result.htmlLink, '_target'); |
要从Google Calendar API v3获取活动,请致电:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
该事件包含属性
An absolute link to this event in the Google Calendar Web UI. Read-only.
请参阅https://developers.google.com/google-apps/calendar/v3/reference/events。
链接如下所示:
1 | https://www.google.com/calendar/event?eid=XzYwcTMwYzFnNjBvMzBlMWk2MG80YWMxZzYwcmo4Z3BsODhyajJjMWg4NHMzNGg5ZzYwczMwYzFnNjBvMzBjMWc2c28zMmRoaDhwMGpnaDIxNnQyNDZkaGc2NG8zMGMxZzYwbzMwYzFnNjBvMzBjMWc2MG8zMmMxZzYwbzMwYzFnNzByNDRoMWk2b3AzOGUxazZoMms2aDFrNmQwamNkaTI2OHBrMmhpMjg4czRjZ2hoNzBwMF8yMDA2MDUwNSBob3BtYW4ubmxfbjE5ZGF2YWgxb3Zkb3EzbGl2N2t1aWU5Z. |
它将全屏打开事件,当然只有您可以访问该事件。屏幕将包含一个返回日历的后退按钮。
显然,您无法自己构建此链接,因此您需要调用API,但无论如何您可能已经这样做了。
要创建用户可以公开查看事件日历的页面,有权更改日历共享设置的用户必须首先公开日历:
-
在Google日历的右上角,点击"设置"轮。
-
在"设置"中,单击"日历"选项卡。
-
单击您正在使用的日历的名称。
-
接下来,单击"共享此日历"选项卡。确保从下面的屏幕截图中选中复选框(以红色圈出)。
-
然后,单击位于左上角的"日历详细信息"选项卡。
-
向下滚动到"日历地址"部分,如下面的屏幕截图所示。
-
点击"HTML"。
-
将出现一个弹出式模式,其中包含您公开访问日历所需的公共URL。
以下是URL的外观示例:
1 | https://www.google.com/calendar/[email protected]&ctz=America/Los_Angeles&gsessionid=OK |
此外,有关创建和使用日历小工具的信息,请参阅Google Calendar Data API。
谷歌创建了一个DIY页面。
https://support.google.com/calendar/answer/3033039