Мое приложение использует Firebase для входа в систему, и у них есть доступ к календарю, который специально создан как единый общий календарь для добавления и удаления резервирований.
Для этого у приложения есть, так сказать, собственный адрес Gmail. Доступ к приложению осуществляется через API Google (клиент gapi).
Чтобы пользователи могли взаимодействовать с календарем, я обнаружил, что могу использовать только служебную учетную запись календаря / приложения.
Пока мне удалось:
- создать сервисный ключ для сервисной учетной записи,
- поделиться календарем с сервисной учетной записью «фиктивного» пользователя,
- использовать этот сервисный ключ (сертификат) для создания токена JWT (с использованием библиотеки jsrsasign),
- сделать запрос POST, чтобы получить токен доступа для gapi,
- инициализирует авторизацию gapi и клиента и имеет доступ к календарю через gapi
Теперь, когда я дохожу до момента получения событий Календаря Google, я получаю успешный ответ, но массив событий пуст, хотя в общем календаре доступны тестовые события.
Ответ выглядит так:
{
"kind": "calendar#events",
"etag": "\"pqef3g4h5j6j0g\"",
"summary": "my_app_email@appspot.gserviceaccount.com",
"updated": "2019-01-15T21:14:05.029Z",
"timeZone": "UTC",
"accessRole": "owner",
"defaultReminders": [],
"items": []
}
В Stackoverflow есть несколько тем, касающихся этого, но ни в одной из них нет полезной информации, или они касаются Pythin / PHP.
Я надеюсь, что кто-то может дать совет с этим для Javascript ...