2012-05-26 64 views
24

使用谷歌日曆API v3,我添加了一個事件到谷歌日曆。現在我想建立一個html鏈接,以便有人可以點擊並查看日曆事件。如何建立到谷歌日曆事件的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

問題是我得到AA 401錯誤 「需要授權」

如何建立根據Google日曆ID查看/編輯日曆活動的鏈接?

+0

是日曆公衆?日曆的所有者可能需要向其公開讀取權限。 – jmort253

+0

權限是公開的,我仍然得到那個401錯誤。我認爲它可能在谷歌日曆頁面上,你實際上點擊超鏈接鑽入和編輯事件詳細信息。 – codingJoe

+0

嗨喬,你想顯示實際的日曆或只是飼料? – jmort253

回答

0

要創建一個頁面,用戶可以公開查看活動的日曆,誰有權更改日曆共享設置,必須首先使日曆公衆用戶:在頂部

  • 從谷歌日曆,右鍵單擊設置輪。

  • 在設置中,單擊 「日曆」 選項卡。

  • 點擊你正在使用的日曆的名稱。

  • 接下來,單擊「共享此日曆」選項卡。確保從下面的截圖中勾選複選框(以紅色圈出)。

Google Calendar Settings Page


  • 之後,點擊 「詳細日曆」 選項卡中,位於左上角。

  • 向下滾動到「日曆地址」部分,如下面的屏幕截圖所示。

  • 點擊 「HTML」。

  • 一個彈出模式將出現,其中包括你需要公開訪問日曆的公開網址。


Get URL For Public Google Calendar


這裏的URL可能看起來像一個例子:

https://www.google.com/calendar/[email protected]&ctz=America/Los_Angeles&gsessionid=OK 

另外,看到Google Calendar Data API的信息,創建和使用工作日曆小工具。

+0

這個答案似乎不是OP的問題。您說明如何建立日曆的鏈接,而OP需要指向EVENT的鏈接。 – Fuhrmanator

6

事件URL不是日曆URL。

此鏈接帶來的解釋:Google Calender v3

,並建立這個網址的方式是:

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId 

其中calendarId & eventId是參數應用。

希望這是有幫助的。

+1

我通過我在Google電子表格中編寫的腳本獲取了日曆設置和eventID中的我的(公共日曆)calendarID,該腳本將給定日曆的所有事件轉儲出去。我嘗試從瀏覽器訪問上面構建的URL失敗,並顯示「每日限制超出未認證使用限制,繼續使用需要註冊。」錯誤。我不確定Google允許OP根據OP的要求通過瀏覽器訪問事件(點擊)。 – Fuhrmanator

+0

@Fuhrmanator我終於明白了。您只需要事件ID:'https://www.google.com/calendar/event?eid= {event-id}'。查看我的答案瞭解更多詳情。 –

+0

我不太確定這是對所問問題的回答。 –

0

要獲得來自谷歌日曆API第3版事件,請撥打:

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId

該事件包含的屬性htmlLink,而這正是你所需要的:

絕對連結Google日曆網絡用戶界面中的此事件。只讀。

請參閱https://developers.google.com/google-apps/calendar/v3/reference/events

鏈接看起來是這樣的:

https://www.google.com/calendar/event?eid=XzYwcTMwYzFnNjBvMzBlMWk2MG80YWMxZzYwcmo4Z3BsODhyajJjMWg4NHMzNGg5ZzYwczMwYzFnNjBvMzBjMWc2c28zMmRoaDhwMGpnaDIxNnQyNDZkaGc2NG8zMGMxZzYwbzMwYzFnNjBvMzBjMWc2MG8zMmMxZzYwbzMwYzFnNzByNDRoMWk2b3AzOGUxazZoMms2aDFrNmQwamNkaTI2OHBrMmhpMjg4czRjZ2hoNzBwMF8yMDA2MDUwNSBob3BtYW4ubmxfbjE5ZGF2YWgxb3Zkb3EzbGl2N2t1aWU5Z. 

這將打開事件全屏幕,僅當然如果你有機會到事件。屏幕將包含返回按鈕以返回日曆。

顯然,你不能自己構建這個鏈接,所以你需要對API進行調用,但是你可能已經這樣做了。

+0

這不回答OP對「鏈接的請求,以便某人可以點擊並查看日曆事件」。您可以使用https://www.google.com/calendar/event?eid= {event-id}',查看我的答案瞭解更多詳情。 –

+0

任何想法如何讓這個鏈接成爲一個特定的時區? – cnaut

34

有一種方法!要查看公共日曆事件,請使用以下形式的鏈接:

https://www.google.com/calendar/event?eid={event-id}&ctz={timezone} 

其中{事件ID}是唯一事件ID,並{}時區是these time zones之一。

下面是一個例子:link to a specific public calendar event

如果您有編輯此事件的日曆的權限,您將能夠編輯該事件並查看來賓列表。否則,您只會看到關於該事件的公開信息。

,因爲它可以很難確定事件ID,這裏是產生一個鏈接到您的谷歌日曆事件,當您正在編輯的詳細信息頁面中的書籤:

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年),谷歌日曆UI:

javascript:(function(){ url=window.location.href.split("/"); window.prompt('Shareable link to this event:','https://www.google.com/calendar/event?eid='+url[url.length-1]) })() 

(也可能是有用的,如何鏈接到公共谷歌日曆的具體天:

https://www.google.com/calendar/embed?src={calendar-id}&mode=day&dates={yyyymmdd}%2F{yyyymmdd} 

其中{日曆-ID}是日曆的id和{}年月日是要鏈接的一天。

可選參數包括時區和是否顯示各種物品,例如:

&ctz=Asia/Taipei&showNav=0&showPrint=0&showCalendars=0 

例:link to single day of a public calendar

+0

你能發佈信息嗎?它是新記錄的嗎? – Fuhrmanator

+1

我剛剛在[公開共享的日曆](https:/ /)中點擊[更多詳情»](https://www.google.com/calendar/event?eid=ZHRvZGppcHJhYWthbGJhZ2JzNGkxZnVsa2MgOTZtcHU4OHYyZDNvbnFrcDZwaDk4NjVwMWNAZw&ctz=Asia/Taipei) /www.google.com/calendar/embed?src=96mpu88v2d3onqkp6ph9865p1c%40group.calendar.google.com&mode=day&dates=20140802%2F20140802&ctz=Asia/Taipei)。要麼是新功能,要麼是因爲我一直在尋找一種很長時間以來這樣做的方式:D –

+1

bookmarklet是MAGIC!偉大的工作,人。 –

3

我想張貼這一點,因爲它是tangental的問題被問當我嘗試做以下事情時,這篇文章就出現了。

我試圖生成一個Google事件,僅用於添加到其他人的日曆中,而不是保存到任何特定的日曆。我在這裏找到了一個例子,我正在試圖找出它接受的URL參數。

https://www.google.com/calendar/render?action=TEMPLATE&text=PRP+Due&dates=20141106T120000Z/20141106T120000Z&details&location&trp=false 
3

這是建立鏈接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

要通過事件ID查看谷歌壓延事件。

你可以用下面的例子:

https://www.google.com/calendar/event?eid={event-id}&ctz={timezone} 

實例對於印度時區:

https://calendar.google.com/calendar/event?eid=ZjVicWczYWpndmh0ZmdtYmd0cXFxZWc3czggdTJoZmoybGg0aDcwbmhzMzV2c25pamd1dG9AZw&ctz=Asia/Kolkata