Tengo una pregunta sobre el calendario de Google y espero que me puedan ayudar.
Tengo access_token del calendario de Google y ese access_token se almacenó en localStorage .
const googleAccessToken = e.vc.access_token; localStorage.setItem('googleAccessToken', googleAccessToken);Ahora, por favor, ayúdame a entender cómo puedo usar esto para evitar la autorización cada vez.
Por ejemplo, quiero eliminar todos los eventos, y para eso escribí este código, y este código cada vez que quiere mi autorización:
const handleDisconnect = () => { gapi.load('client:auth2', () => { console.log('loaded client'); gapi.client.init({ apiKey: API_KEY, clientId: CLIENT_ID, discoveryDocs: DISCOVERY_DOCS, scope: SCOPES_CLEAR, }); gapi.client.load('calendar', 'v3', () => { console.log('sdsd'); }); gapi.auth2 .getAuthInstance() .signIn() .then(() => { var events = bb; var makeRequest = resource => { console.log(resource); var request = gapi.client.calendar.calendars.clear({ calendarId: 'primary', }); request.execute(resp => { console.log(resp); }); }; for (var j = 0; j < events.length; j++) { makeRequest(events[j]); } }); }); }; Por favor, ayúdenme a arreglar ese código con access_token para evitar la autorización.
Los tokens de acceso caducan después de una hora. Una vez que el token de acceso haya caducado, deberá autorizar al usuario nuevamente para tener acceso a sus datos nuevamente.
Normalmente, con Oauth2 puede solicitar algo llamado acceso fuera de línea, esto le dará algo llamado token de actualización. Los tokens de actualización para las aplicaciones que están en producción son de larga duración y, en su mayor parte, no caducan. Puede usar un token de actualización para solicitar un nuevo token de acceso cuando sea necesario. De esta forma no necesitarás autorizar al usuario después de una hora.
Lamentablemente, los tokens de actualización no son compatibles con la autorización del lado del cliente mediante JavaScript. Deberá cambiar a un idioma del lado del servidor.
Si está tratando de acceder a una cuenta de calendario estática que le pertenece a usted, el desarrollador, en lugar de a las cuentas de calendario que pertenecen a sus usuarios, podría usar algo llamado cuentas de servicio. Sin embargo, las cuentas de servicio solo funcionan con el calendario de Google si utiliza la delegación de todo el dominio a una cuenta de Google Workspace, no funcionará con las cuentas de calendario de Gmail estándar. Además, las cuentas de servicio no son compatibles con JavaScript, deberá cambiar a un lenguaje de programación del lado del servidor.
Después de todo eso, espero que pueda ver si se apega a JavaScript, deberá solicitar la autorización de sus usuarios cuando caduque el token de acceso.