使用Google日历API v3,我在Google日历中添加了一个事件。现在我想构建一个html链接,以便有人可以点击并查看日历事件。
以下是我的尝试:
<a href="https://www.google.com/calendar/feeds/default/private/full/{{ event.googleID }}">View Google</a>
href看起来像:
https://www.google.com/calendar/feeds/default/private/full/bigstringhere1ovmuup7mjf0
问题是我得到401错误“需要授权”
如何根据Google日历ID构建链接以查看/编辑日历事件?
答案 0 :(得分:35)
有办法!要查看公共日历活动,请使用以下表单的链接:
https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}
其中 {event-id} 是唯一的事件ID, {timezone} 是these time zones之一。
以下是一个示例:link to a specific public calendar event。
如果您拥有此活动来自的日历的编辑权限,您将能够编辑活动并查看访客列表。否则,您只需看到有关该事件的公开信息。
由于可能很难确定事件ID,因此这里是一个书签,当您编辑其详细信息页面时,该书签会生成指向您的Google日历事件的链接:
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日历用户界面:
javascript:(function(){
window.prompt('Shareable link to this event:',
'https://www.google.com/calendar/event?eid='+
window.location.href.split("/").pop().split("?")[0])
})()
(也可能有用,如何链接到公开Google日历的特定日:
https://www.google.com/calendar/embed?src={calendar-id}&mode=day&dates={yyyymmdd}%2F{yyyymmdd}
其中 {calendar-id} 是日历的ID, {yyyymmdd} 是您要链接的日期。
可选参数包括时区以及是否显示各种项目,例如:
&ctz=Asia/Taipei&showNav=0&showPrint=0&showCalendars=0
答案 1 :(得分:9)
以下是构建链接的HTML:
https://www.google.com/calendar/render?action=TEMPLATE&text=Your+Event+Name&dates=20140127T224000Z/20140320T221500Z&details=For+details,+link+here:+http://www.example.com&location=Waldorf+Astoria,+301+Park+Ave+,+New+York,+NY+10022&sf=true&output=xml
答案 2 :(得分:6)
事件网址不是日历网址。
此链接带来解释:Google Calender v3
构建此网址的方法是:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
calendarId
&amp; eventId
是参数。
希望这有用。
答案 3 :(得分:4)
我想发布此内容,因为它与所提出的问题相关,当我尝试执行以下操作时,此帖子会出现。
我尝试生成Google活动的唯一目的是将其添加到其他人的日历中,而不是保存到任何特定的日历中。我在这里找到了一个例子,我现在正试图弄清楚它接受的URL参数。
https://www.google.com/calendar/render?action=TEMPLATE&text=PRP+Due&dates=20141106T120000Z/20141106T120000Z&details&location&trp=false
答案 4 :(得分:3)
按事件ID查看Google日历事件。
您可以使用以下示例:
https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}
印度时区的例子:
https://calendar.google.com/calendar/event?eid=ZjVicWczYWpndmh0ZmdtYmd0cXFxZWc3czggdTJoZmoybGg0aDcwbmhzMzV2c25pamd1dG9AZw&ctz=Asia/Kolkata
答案 5 :(得分:0)
要创建一个用户可以公开查看事件日历的页面,有权更改日历共享设置的用户必须先公开日历:
在Google日历的右上角,点击设置轮。
在“设置”中,点击“日历”标签。
点击您正在使用的日历的名称。
接下来,点击“分享此日历”标签。确保从下面的屏幕截图中选中复选框(以红色圈出)。
然后,点击位于左上角的“日历详细信息”标签。
向下滚动到“日历地址”部分,如下面的屏幕截图所示。
点击“HTML”。
系统会显示一个弹出模式,其中包含您公开访问日历所需的公共网址。
以下是网址的示例:
https://www.google.com/calendar/embed?src=domain.comrandomstring@group.calendar.google.com&ctz=America/Los_Angeles&gsessionid=OK
此外,有关创建和使用日历小工具的信息,请参阅Google Calendar Data API。
答案 6 :(得分:0)
要从Google Calendar API v3获取活动,请致电:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
该事件包含属性htmlLink
,这正是您所需要的:
Google Calendar Web UI中此事件的绝对链接。只读。
请参阅https://developers.google.com/google-apps/calendar/v3/reference/events。
链接如下所示:
https://www.google.com/calendar/event?eid=XzYwcTMwYzFnNjBvMzBlMWk2MG80YWMxZzYwcmo4Z3BsODhyajJjMWg4NHMzNGg5ZzYwczMwYzFnNjBvMzBjMWc2c28zMmRoaDhwMGpnaDIxNnQyNDZkaGc2NG8zMGMxZzYwbzMwYzFnNjBvMzBjMWc2MG8zMmMxZzYwbzMwYzFnNzByNDRoMWk2b3AzOGUxazZoMms2aDFrNmQwamNkaTI2OHBrMmhpMjg4czRjZ2hoNzBwMF8yMDA2MDUwNSBob3BtYW4ubmxfbjE5ZGF2YWgxb3Zkb3EzbGl2N2t1aWU5Z.
它将全屏打开事件,当然只有您可以访问该事件。屏幕将包含一个返回日历的后退按钮。
显然,您无法自己构建此链接,因此您需要调用API,但无论如何您可能已经这样做了。
答案 7 :(得分:0)
创建了Google日历事件后,在响应中我们获得了const songs = ["Lophelia -- MYTCH [Acoustic Prog-Rock/Jazz] (2019)",
"Julia Jacklin - Pressure to Party [Rock] (2019)",
"The Homeless Gospel Choir - I'm Going Home [Folk-Punk] (2019) cover of Pat the Bunny | A Fistful of Vinyl",
"Lea Salonga and Simon Bowman - The last night of the world [musical] (1990)",
"Lophelia -- MYTCH [Acoustic Prog-Rock/Jazz]",
"Death - $uicideboy$",
"SNFU -- Joni Mitchell Tapes [Punk/Alternative] (1993)",
"Title - Aritst (2000)",
"Something strange and badly formatted without any artist [Classical]"]
songs.forEach(song => {
m = /^([^-[\]()\n]+)-* *([^[\]()\n]*)/.exec(song)
console.log("Title: " + m[1] + ", Artist: " + m[2])
})
属性。在此result
属性中,将有一个另外的result
可用,这些链接具有有关正在创建的事件的链接。现在,它可以打开了:
htmlLink
答案 8 :(得分:0)
Wordpress + ACF Google Cal。
将ACF日期选择器设置为自定义返回Y-m-d g:i a
然后创建一个Google格式的日期。
$event_start_date = get_field('event_start_date');
$event_print_date = date('d/m/Y',strtotime($event_start_date));
$event_start_time = get_field('event_start_time');
$event_end_date = get_field('event_end_date');
$event_print_enddate = date('d/m/Y',strtotime($event_end_date));
$event_end_time = get_field('event_end_time');
$calendarDate = date('Ymd',strtotime($event_start_date)) .'T'. date('Hi',strtotime($event_start_time)). '00/' . date('Ymd',strtotime($event_end_date)) .'T'. date('Hi',strtotime($event_end_time)) . '00';
链接
<a href="https://www.google.com/calendar/render?action=TEMPLATE&text=<?php the_title(); ?>&dates=<?php echo $calendarDate; ?>&details=<?= strip_tags($event_contact_info); ?> For+details,+link+here:+<?php the_permalink(); ?>&location=<?php echo $calendarLocation; ?>&sf=true&output=xml" target="_blank" rel="nofollow">Add this event to my Google Calendar</a>
答案 9 :(得分:-3)
Google已经创建了一个DIY页面。