Встраивать календарь Google как iframe в приложение реакции? - PullRequest
0 голосов
/ 10 июня 2019

Есть ли способ реализовать iframe календаря Google внутри приложения реагирования без необходимости вручную обрабатывать события?

Как в веб-приложении будет отображаться iframe, где они могут войти в календарь Google, так и в специальном окне.

Я могу найти решения, используя только библиотеку календарей, но не подход, о котором я думаю.

1 Ответ

0 голосов
/ 10 июня 2019

Google установил заголовок ответа "X-Frame-Options" для запросов на https://calendar.google.com/calendar/r (домашняя страница календаря по умолчанию) на sameorigin, что означает, что не будет работать:

<h2>Your Calendar:</h2>
<iframe src="https://calendar.google.com/calendar/r"></iframe>

Если вы попробуете это, вы получите Refused to display '<URL>' in a frame because it set 'X-Frame-Options' to 'sameorigin'..По сути, единственным доменом, которому будет разрешено встраивать страницы календаря по умолчанию, будет собственный домен Google.

При этом существует несколько интересных вариантов.Если вы знаете адрес электронной почты пользователей, даже если их календарь является закрытым, если они вошли в систему, они увидят iframe с источником, равным 'https://calendar.google.com/calendar/embed?src=' + encodeURI(email);.

Демо: JSfiddle link (встроенный инструмент для встраивания вызывает у меня горе).

Однако, если они не вошли в систему, обнаружить это и показать страницу входа в Google, как вы и просили, будет сложно.Если они не вошли в систему, iframe с URL-адресом для встраивания GCal будет автоматически перенаправлен на страницу входа, но поскольку на странице входа в систему для x-frame-options установлено значение sameorigin, загрузка в iframe будет заблокирована.Чтобы увидеть это в действии, попробуйте приведенную выше демонстрацию в окне инкогнито вошедшего в систему и введите свой адрес электронной почты Gmail.

Кроме того, насколько я могу судить, вы не можете определить, была ли загрузка iframe былазаблокирован x-frame-options с Javascript, поэтому нет простого способа перенаправить пользователя для входа в Google, если календарь не загружается.

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

...