Требование :
Мне нужно разработать следующую функцию: пользователь нажимает кнопку на моем сайте, а затем появляется диалоговое окно Google, запрашивающее разрешения в моем календаре для моегоприложение.Если пользователь принимает это - мое серверное приложение (скажем, NodeJS) должно иметь возможность читать его события в любое время (не только в течение 30 дней).
Вот что я пробовал :
Я следовал этим учебникам (и NodeJS, и Browser) https://developers.google.com/calendar/quickstart/nodejs
Учебник NodeJS дает мне разрешения для моей учетной записи (хотя мне нужно, чтобы пользователи давали разрешения для своих учетных записей).
Учебник по браузеру открывает диалоговое окно и запрашивает разрешения.Если пользователь принимает запрос, то он заканчивается разрешением в календаре только на 1 час (поэтому, даже если я могу использовать токен с моего сервера, это не решит проблему).Чтобы проверить это, просто попробуйте напечатать результат Обещания из handleAuthClick
, изменив его немного
gapi.auth2.getAuthInstance().signIn().then(res => {console.log(res)});
Посмотрите на expires_in (или expires_at) в напечатанном результате:
{
"El": "117770076845340691060",
"Zi": {
"token_type": "Bearer",
"access_token": "ya29.Glb...zr8Yx",
"scope": "https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.email openid email profile",
"login_hint": "AJDLj...WlQ",
"expires_in": 3600,
"id_token": "eyJhvGciO...sHxw6HcA",
"session_state": {
"extraQueryParams": {
"authuser": "1"
}
},
"first_issued_at": 1528384733411,
"expires_at": 1528388333411,
"idpId": "google"
},
"w3": {
"Eea": "117770076845340691060",
"ig": "Bryan Gray",
"ofa": "Bryan",
"wea": "Gray",
"Paa": "https://lh3.googleusercontent.com/-zQ8KN1XZtJI/AAAAAAAAAAI/AAAAAAAAAAA/AB...e/s96-c/photo.jpg",
"U3": "alex@khealth.ai"
}
}