十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Cal.diy 怎么配置 Microsoft Graph 凭证接入 Office 365 日历

Cal.diy 怎么配置 Microsoft Graph 凭证接入 Office 365 日历 Cal.diy 怎么配置 Microsoft Graph 凭证接入 Office 365 日历【免费下载链接】cal.diyScheduling infrastructure for absolutely everyone.项目地址: https://gitcode.com/GitHub_Trending/ca/cal.diyCal.diyCal.com 的社区自托管版本支持接入 Office 365 / Outlook.com 日历实现方式为 OAuth先在 Azure 中注册一个应用拿到 Microsoft Graph 的 Client ID 与 Client Secret把它们写入实例的环境变量然后就能在 Cal.diy 的界面里连接日历。本文对应 微软接入文档 和 README.md 中的 Obtaining Microsoft Graph Client ID and Secret 一节适用于自建Docker 或源码部署且可访问的 Cal.diy 实例前提是你拥有一个能在 Azure 中创建应用注册的账号并且知道实例的访问地址下文记为Cal.diy URL即你部署时使用的域名或http://localhost:3000。在 Azure 中注册应用并获取 Client ID / Secret按 微软接入文档 的步骤操作在 Azure 门户中打开 App registrations应用注册页面选择New registration。输入应用名称完成注册。在 Who can use this application or access this API?谁可以使用此应用或访问此 API一项中选择Accounts in any organizational directory (Any Azure AD directory - Multitenant)任何组织目录中的账户 - 多租户。添加Web类型的重定向 URI值必须为Cal.diy URL/api/integrations/office365calendar/callback把Cal.diy URL替换为 Cal.diy 实际运行的地址。这个地址与回调代码中使用的路径/api/integrations/office365calendar/callback完全一致见 callback 实现改动了部署地址就要同步修改这里的重定向 URI。 5. 复制Application (client) ID它的用途是.env中的MS_GRAPH_CLIENT_ID。 6. 进入Certificates secrets证书和密码新建一条 client secret复制生成的值作为MS_GRAPH_CLIENT_SECRET。把凭证写入环境变量文档 微软接入文档 要求把两个值分别写入.env文件的MS_GRAPH_CLIENT_ID与MS_GRAPH_CLIENT_SECRET。项目根目录下的 .env.appStore.example 模板中也有这两个字段其注释标明它们用于 Office 365 / Outlook.com Calendar / MS Teams integrationMS_GRAPH_CLIENT_ID MS_GRAPH_CLIENT_SECRET这两个变量是后续种子脚本向 App Store 数据库写入 Outlook Calendar 应用含client_id/client_secret的数据来源见 seed-app-store.ts只有当MS_GRAPH_CLIENT_ID和MS_GRAPH_CLIENT_SECRET都已设置时脚本才会插入office365-calendar应用及其凭证。重新种子 App StoreREADME 中与 Google Calendar 同类的操作是写入凭证后重新填充 App Store。对应命令与 README Adding google calendar to Cal.diy App Store 一节给出的命令一致cd packages/prisma yarn seed-app-store执行后App Store 中会出现 Outlook Calendar 应用应用元数据定义在 office365calendar/_metadata.ts名称为 Outlook CalendarisOAuth: true分类为 calendar。在 Cal.diy 界面中连接日历README 的部署说明中提到首次设置向导的 Connect your Calendar 步骤可以跳过日历集成随时可以从Settings Integrations页面添加。因此主路径是登录 Cal.diy进入 Settings Integrations或 App Store。安装 Outlook Calendar 应用页面会跳转到 Microsoft 登录页用你的 Office 365 / Outlook 账户授权。回调处理时Cal.diy 向 Microsoft 请求的权限范围为offline_access、Calendars.Read、Calendars.ReadWrite定义在 callback 实现 中。授权成功后回调逻辑会为当前用户创建office365_calendar类型的凭证并把账户中的默认日历isDefaultCalendar为 true 的那个设为该用户在 Cal.diy 中使用的日历。结果验证与常见错误连接是否成功最直接的表现是 OAuth 回调后浏览器的落点行为来自 callback 实现成功无错误参数地重定向回已安装应用页面/apps/installed或你发起安装前的页面。凭证未配置回调返回 400消息为Office 365 client_id missing.或Office 365 client_secret missing.——说明环境变量没有生效检查.env/.env.appStore并确认实例已用新变量重启。?errorno_default_calendar该 Office 账户下找不到默认日历需要在 Outlook 侧确认存在默认日历。?erroraccount_already_linked该账户已有一条office365_calendar选择记录且无法复用旧凭证时出现。?errorsomething_went_wrong写入selectedCalendar时的其他数据库错误。令牌交换失败浏览器会跳转到/apps/installed?errorMicrosoft 返回的 JSON其中包含 Microsoft 侧的原始错误信息可据此核对 Client ID、Secret 与重定向 URI 是否一致。限制与边界应用注册必须设为多租户Any Azure AD directory - Multitenant文档中未提供单租户的替代说明。回调代码假定账户存在一个默认日历只有单一日历的账户不受影响多日历账户的默认日历由 Outlook 侧决定。本文只覆盖连接 Office 365 日历这一步更换部署地址后务必同步更新 Azure 中的重定向 URI否则授权完成后回调会失败。【免费下载链接】cal.diyScheduling infrastructure for absolutely everyone.项目地址: https://gitcode.com/GitHub_Trending/ca/cal.diy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表