在我的 NextJS 应用程序中,我使用 clerk for auth (Google SSO),我希望能够代表登录用户通过 UI 创建一个 google meet 事件。我相信这样做的方法是,一旦用户使用了通过 google ss 登录,我应该能够检索他们的 google 访问令牌,该令牌可用于查询 google 日历 api 并进行活动。我已经授予
https://www.googleapis.com/auth/calendar.events https://www.googleapis.com/auth/calendar
作为 Google SSO 的职员的附加范围,因此现在用户可以在注册时或稍后通过职员 ui 授权这些。
问题是获取谷歌访问令牌。默认情况下它不在用户对象中。我不知道如何获得它。也许有某种方法可以在登录时获取它并使用 webhook 将其保存到用户元数据中?我认为这应该很容易或者至少是可能的,否则我不知道为什么你可以在职员中为身份提供者授予额外的范围。
非常感谢任何帮助。干杯
我搜索了文档 https://clerk.com/docs/authentication/social-connections-oauth#configure-additional-o-auth-scopes 为 google calendar api 引入了额外的 o-auth 范围。在获取谷歌访问令牌时找不到任何内容。 GPT-4 无法解决它,认为它应该默认在用户对象中,但事实并非如此。
Clerk Devs 为我链接了适当的文档。
在nextjs中可以在后台使用clerkClient.users来获取
https://clerk.com/docs/reference/backend-api/tag/Users#operation/GetOAuthAccessToken
https://api.clerk.dev/v1/users/{user_id}/oauth_access_tokens/{provider}