Calendar
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Documentazione
- Chiarezza
- Da chiarire
- Stato di attività
- Tranquilla
- Stack tecnologico
- nextjs, typescript
- Ambito
- api, authentication, documentation
Direzione di ricerca
Non viene indicato alcun file del repository, test o punto di ingresso della documentazione. Identifica innanzitutto dove deve essere inserita in QCX la guida all’autenticazione di Google Calendar e Clerk, quindi verifica che gli scope OAuth, l’esempio di recupero del token e la richiesta a Calendar API siano appropriati; il lavoro è considerato completato quando le informazioni sono collocate nella posizione concordata per la documentazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Answer
To use Google Calendar with Clerk authentication, you need to enable Google OAuth and request the appropriate calendar scopes. (1)
Required Scopes
When configuring Google as a social connection, include these scopes to access calendar data:
- `https://www.googleapis.com/auth/calendar.readonly%60
- `https://www.googleapis.com/auth/calendar.events.readonly%60
Accessing Calendar Data
Once a user signs in with Google, Clerk stores and manages their OAuth tokens automatically. Use getUserOauthAccessToken to retrieve the access token for making Google Calendar API requests:
'use server'
import { auth, clerkClient } from '@clerk/nextjs/server'
export async function getGoogleToken() {
const { userId } = await auth()
const client = await clerkClient()
const token = await client.users.getUserOauthAccessToken(userId || '', 'oauth_google')
return {
token: token.data[0].token,
}
}
Making Calendar Requests
Use the retrieved token to call the Google Calendar API:
const client = await clerkClient()
const token = await client.users.getUserOauthAccessToken(userId, 'oauth_google')
const accessToken = token.data[0].token
// Code removed for brevity.
const response = await fetch(
`<https://www.googleapis.com/calendar/v3/calendars/$%7BencodeURIComponent(>
calendarId,
) }/events?timeMin=${monthStart.toISOString() }&timeMax=${monthEnd.toISOString() }&singleEvents=true&orderBy=startTime`,
{
headers: {
Authorization: `Bearer ${accessToken}`,
},
},
)
Clerk automatically keeps access tokens current, so you don't need to handle token refresh manually. For a complete working example, check out the BookMate demo application or its source code on GitHub .
- Lingua principale
- TypeScript
- Stelle
- 19
- Fork
- 7
- Merge medio
- 59m
- PR unite (30g)
- 16
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di QueueLab/QCX
-
Settings Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Update Gemini 3.1 Pro Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Collaboration Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
-
Image preview Gen UI Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
Tutte le issue di QueueLab/QCX
Issue simili
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
Mend: dependency security vulnerability untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100