Как создать html-ссылку на событие календаря Google?
Используя Google Calendar API v3, я добавил событие в календарь Google. Теперь я хочу построить html-ссылку, чтобы кто-то мог щелкнуть и просмотреть событие календаря.
Вот что я пробовал:
<a href="#" onclick="location.href='https://www.google.com/calendar/feeds/default/private/full/{{ event.googleID }}'; return false;">View Google</a>
href выглядит так:
https://www.google.com/calendar/feeds/default/private/full/bigstringhere1ovmuup7mjf0
Проблема в том, что я получаю ошибку 401 "Требуется авторизация"
Как создать ссылку для просмотра/редактирования события календаря на основе идентификатора календаря Google?
Ответы
Ответ 1
Есть выход! Для просмотра публичного календаря используйте ссылку в форме:
https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}
где {event-id} - уникальный идентификатор события, а {timezone} - один из этих часовых поясов.
Вот пример: ссылка на конкретное общедоступное событие календаря.
Если у вас есть права на редактирование календаря, из которого это событие, вы сможете отредактировать событие и увидеть список гостей. В противном случае вы просто увидите публичную информацию о событии.
Поскольку может быть сложно определить идентификатор события, здесь есть букмарклет, который создает ссылку на ваше событие в Календаре 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} - это идентификатор календаря, а {yyyymmdd} - это день, на который вы хотите сделать ссылку.
Необязательные параметры включают в себя часовой пояс и возможность отображения различных элементов, например:
&ctz=Asia/Taipei&showNav=0&showPrint=0&showCalendars=0
Пример: ссылка на один день общедоступного календаря.)
Ответ 2
Вот 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
Ответ 3
URL-адрес события не является URL-адресом календаря.
В этой ссылке приводятся объяснения: Google Calender v3
И способ создания этого URL-адреса:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
где calendarId
и eventId
являются параметрами.
Надеюсь, что это полезно.
Ответ 4
Я хотел опубликовать это, потому что он имеет отношение к заданному вопросу, и это сообщение появляется, когда я пытался сделать следующее.
Я пытался создать Google Event с единственной целью добавления в календари других людей, не сохраненных в каком-либо конкретном календаре. Я нашел здесь пример, и в настоящее время я пытаюсь выяснить параметры URL, которые он принимает.
https://www.google.com/calendar/render?action=TEMPLATE&text=PRP+Due&dates=20141106T120000Z/20141106T120000Z&details&location&trp=false
Ответ 5
Чтобы просмотреть событие календаря Google по идентификатору события.
Вы можете использовать нижеприведенный пример:
https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}
Пример для индийского часового пояса:
https://calendar.google.com/calendar/event?eid=ZjVicWczYWpndmh0ZmdtYmd0cXFxZWc3czggdTJoZmoybGg0aDcwbmhzMzV2c25pamd1dG9AZw&ctz=Asia/Kolkata
Ответ 6
Чтобы создать страницу, на которой пользователи могут просматривать Календарь событий публично, пользователь, имеющий разрешения на изменение настроек совместного доступа к календарю, должен сначала открыть календарь:
-
В Календаре Google в правом верхнем углу щелкните колесо настроек.
-
В разделе "Настройки" перейдите на вкладку "Календари".
-
Выберите имя календаря, с которым вы работаете.
-
Затем нажмите вкладку "Поделиться этим календарем". Убедитесь, что флажки отмечены снимок экрана ниже (обведен красный).
![Google Calendar Settings Page]()
-
Затем нажмите вкладку "Сведения о календаре", расположенную в левом верхнем углу.
-
Прокрутите вниз до раздела "Календарный адрес", как показано на скриншоте ниже.
-
Нажмите "HTML".
-
Появится всплывающее модальное сообщение, которое включает общедоступный URL-адрес, который вам нужно будет публично открыть.
![Get URL For Public Google Calendar]()
Вот пример того, как выглядит URL-адрес:
https://www.google.com/calendar/[email protected]&ctz=America/Los_Angeles&gsessionid=OK
Кроме того, см. API данных календаря Google для получения информации о создании и работе с Календарными гаджетами.
Ответ 7
Чтобы получить событие из API календаря Google v3, вызовите:
GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId
Событие содержит свойство htmlLink
, которое именно то, что вам нужно:
Абсолютная ссылка на это событие в веб-интерфейсе Google Calendar. Только для чтения.
См. https://developers.google.com/google-apps/calendar/v3/reference/events.
Ссылка выглядит следующим образом:
https://www.google.com/calendar/event?eid=XzYwcTMwYzFnNjBvMzBlMWk2MG80YWMxZzYwcmo4Z3BsODhyajJjMWg4NHMzNGg5ZzYwczMwYzFnNjBvMzBjMWc2c28zMmRoaDhwMGpnaDIxNnQyNDZkaGc2NG8zMGMxZzYwbzMwYzFnNjBvMzBjMWc2MG8zMmMxZzYwbzMwYzFnNzByNDRoMWk2b3AzOGUxazZoMms2aDFrNmQwamNkaTI2OHBrMmhpMjg4czRjZ2hoNzBwMF8yMDA2MDUwNSBob3BtYW4ubmxfbjE5ZGF2YWgxb3Zkb3EzbGl2N2t1aWU5Z.
Он откроет полноэкранный режим события, только, конечно, если у вас есть доступ к событию. На экране появится обратная кнопка, чтобы вернуться в календарь.
Понятно, что вы не можете сами создать эту ссылку, поэтому вам нужно будет сделать вызов API, но вы, вероятно, уже все это делаете.
Ответ 8
Когда событие календаря Google было создано, то в ответе мы получили свойство result
. В этом свойстве result
будет доступен еще один htmlLink
со ссылкой на создаваемое событие. Теперь он может открыть:
window.open(response.result.htmlLink, '_target');
Ответ 9
Google Создал страницу для DIY.
https://support.google.com/calendar/answer/3033039