Вопрос по google-calendar-api, google-api – Как создать HTML ссылку на событие календаря Google?

24

Используя API календаря Google 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 & quot; Требуется авторизация & quot;

Как создать ссылку для просмотра / редактирования события календаря на основе идентификатора календаря Google?

& quot; Веб-адрес (URL), который вы пытаетесь посетить, недействителен. Это, вероятно, потому что часть URL отсутствует. Пожалуйста, убедитесь, что вы используете полный URL. (Неверный параметр "eid") & quot; Я всегда получаю eid = $ csei_goog_1362565475, даже для разных событий в разных календарях. Редактировать: неважно. Я не сохранил событие. Глупая ошибка. Bill
Разрешения являются общедоступными, и я все еще получаю эту ошибку 401. Я думаю, что это возможно, поскольку на странице календаря Google вы нажимаете гиперссылку, чтобы просмотреть и отредактировать детали события. codingJoe
Привет, Джо, ты пытаешься отобразить календарь или только канал? Если это фид, то это может объяснить, почему он возвращает 401. jmort253
Является ли календарь общедоступным? Владелец календаря, вероятно, должен предоставить ему публичные разрешения на чтение. jmort253

Ваш Ответ

8   ответов
6

Эта ссылка дает объяснения:Google Calender v3

И способ построить этот URL-адрес:

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

гдеcalendarId & Амп;eventId это параметры.

Надеюсь, это полезно.

Я не уверен, что это ответ на заданный вопрос.
@Fuhrmanator Я наконец понял это. Вам просто нужен идентификатор события:https://www.google.com/calendar/event?eid={event-id}, Смотрите мой ответ для более подробной информации.
Я получил мой (публичный календарь) calendarID из настроек календаря и eventID через сценарий, который я написал в электронной таблице Google, которая выводит все события для данного календаря. Мои попытки получить доступ к URL-адресу, созданному выше, из браузера, не увенчались успехом: «Дневной лимит для использования без аутентификации превышен». Для продолжения использования требуется регистрация. & Quot; ошибка. Я не уверен, что Google разрешает доступ к Событиям через браузер (клик) по запросу ОП.
2

Вы можете использовать ниже пример:

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

Пример для индийского часового пояса:

https://calendar.google.com/calendar/event?eid=ZjVicWczYWpndmh0ZmdtYmd0cXFxZWc3czggdTJoZmoybGg0aDcwbmhzMzV2c25pamd1dG9AZw&ctz=Asia/Kolkata
-3
Это не отвечает на вопрос OP, но говорит о том, как создать кнопку, которая будет создавать новое событие (напоминание) в календаре Google для пользователя Google.
0

на которой пользователи могут публично просматривать Календарь событий, пользователь, у которого есть разрешения на изменение настроек общего доступа к календарю, должен сначала сделать календарь общедоступным:

From the Google Calendar, at the top right, click the Settings wheel.

In Settings, click the "Calendars" tab.

Click the name of the Calendar you're working with.

Next, click the "Share this Calendar" tab. Make sure the checkboxes are checked from the screenshot below (circled in red).

Google Calendar Settings Page

Afterwards, click the "Calendar Details" tab, located at the top left.

Scroll down to the "Calendar address" section, as shown in the screenshot below.

Click "HTML".

A popup modal will appear, which includes the public URL you'll need to access the Calendar publicly.

Get URL For Public Google Calendar

Вот пример того, как может выглядеть URL:

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

Кроме того, см.API данных Календаря Google для получения информации о создании и работе с календарными гаджетами.

Этот ответ, по-видимому, не относится к вопросу OP. Вы указываете, как сделать ссылку на Календарь, тогда как ОП хочет ссылку на СОБЫТИЕ.
0

позвоните по адресу:

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

Событие содержит свойствоhtmlLink, что именно то, что вам нужно:

An absolute link to this event in the Google Calendar Web UI. Read-only.

Увидетьhttps://developers.google.com/google-apps/calendar/v3/reference/events.

Ссылка выглядит так:

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

Он откроет событие в полноэкранном режиме, конечно, только если у вас есть доступ к событию. Экран будет содержать кнопку «Назад», чтобы вернуться в календарь.

Ясно, что вы не можете создать эту ссылку самостоятельно, поэтому вам нужно будет вызвать API, но вы, вероятно, уже делаете это в любом случае.

Любая идея, как сделать эту ссылку для определенного часового пояса?
это не отвечает на запрос OP о ссылке, чтобы кто-то мог щелкнуть и просмотреть событие календаря. Ты можешь использоватьhttps://www.google.com/calendar/event?eid={event-id}см. мой ответ для более подробной информации.
6

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

потому что это касается вопроса, и этот пост появляется, когда я пытался сделать следующее.

Я пытался создать событие Google с единственной целью: добавить его в календари других людей, а не сохранить в каком-либо конкретном календаре. Я нашел здесь пример, и в настоящее время я пытаюсь выяснить параметры URL, которые он принимает.

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

рме:

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])
})()

(Также возможно полезно, как связать с конкретнымday общедоступного календаря 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

Пример:ссылка на один день публичного календаря.)

Можете ли вы опубликовать, где вы нашли эту информацию? Это недавно задокументировано?
Сегодня я узнал о букмарклетах. Спасибо!
Этот букмарклет ВОЛШЕБНЫЙ! Отличная работа, чувак.
Я просто нашел его, нажав наmore details» в случае сpublicly shared calendar, Либо это новая функция, либо я чувствую себя глупо, потому что я долго искал способ сделать это: D

Похожие вопросы