Я хотел бы написать простой PHP-код для веб-сайта, чтобы получить доступ только для чтения к общедоступному календарному списку событий Google с помощью Google Calendar API V3. Мне просто нужно отобразить список предстоящих событий из календаря на веб-странице. Я прочитал документы разработчика и посмотрел раздел начала работы и код примера получения событий, но я немного смущен. Мне любопытно:
Есть ли более простой способ сделать то, что мне нужно, чтобы избежать всего этого материала OAuth? Существует ли метод аутентификации без аутентификации?
Если нет, похоже, мне нужно настроить доступ для своего приложения на code.google.com/apis/console/, а затем сгенерировать имя приложения, ClientID, ClientSecret, RedirectURI и DeveloperKey. ApplicationName и DeveloperKey достаточно просты, чтобы найти их в Google Консоли. Но для других элементов мне нужно создать идентификатор клиента OAuth 2.0, который требует от меня выбрать, является ли Тип приложения веб-приложением или учетной записью службы. Что это должно быть для моего сценария? В этом случае не требуется вход в систему пользователя, поскольку я не запрашиваю доступ к их календарю – это просто открытый календарь, к которому мне нужен доступ.
Что такое URI Redirect и как он используется. Как мне настроить его?
Образец API Google получает и кэширует токен доступа в данных сеанса. Затем в комментариях кода говорится, что вы не должны этого делать, чтобы вместо этого использовать базу данных. Шутки в сторону? Мне действительно нужно иметь дело с кэшированием токена доступа? Если да, есть ли встроенный механизм кэширования DB в API Google или как вы справляетесь с этим?
Я действительно ищу более простой подход. Ваше руководство будет приветствоваться!
Благодарю.
Я думаю, ты переусердствовал. Если вам просто нужен доступ к событиям в общедоступном календаре, тогда есть способ сделать это, не используя API календаря Google и всю сложную сложность. В каждом общедоступном Календаре Google есть канал iCal, который можно просмотреть по определенному URL-адресу, обычно в форме:
http://www.google.com/calendar/ical/{OWNER}/public/basic.ics
где {OWNER}
– адрес электронной почты владельца календаря в URL-адресе.
Вы можете найти конкретный URL-адрес, просмотрев настройки календаря и прокручивая нижнюю часть вкладки «Детали календаря».
Некоторые советы для этого встроены в комментарии к ответу Чарльза. Во всяком случае, с 2014 года (с Google Calendar v3 API) это то, что я сделал:
Перейдите сюда, чтобы посмотреть, как работает API v3:
https://developers.google.com/google-apps/calendar/v3/reference/events/list#try-it
Заполните по крайней мере эти три поля в демонстрационной веб-форме, доступной по приведенной выше ссылке:
calendarId
: URL-адрес URL-адреса владельца календаря.
timeMax
: Время окончания
timeMin
: Время начала
(Используйте этот формат времени: 2014-05-04T00:00:00-00:00
(Ymd T миллисекунда – офсет))
Вы увидите следующий запрос:
GET https://www.googleapis.com/calendar/v3/calendars/{CALENDER_ID}/events?timeMax={start_time}&timeMin={end_time}&key={YOUR_API_KEY}
Теперь вы можете настроить этот URL-адрес запроса для своего требования и отправлять обычные GET-запросы из вашего кода.
PS – Чтобы получить свой API-ключ, выполните следующие действия:
https://developers.google.com/google-apps/calendar/auth