Outlook 日历同步
将用户的 Outlook 日历 与 Odoo 同步,可在所有相关应用中统一跟踪任务和约会。
::: seealso
../../general/users/azure–
../../general/email_communication/azure_oauth
:::
Microsoft Azure 设置
要将 Outlook 日历 与 Odoo 的 日历 同步,需要一个 Microsoft Azure 账户。首次使用或从未付费的用户可免费创建账户。更多信息请查看 Azure 网站 上的账户选项。
参考 Microsoft 文档 了解如何设置 Microsoft Entra ID(原名 Microsoft Azure Active Directory (Azure AD)),该平台用于管理和注册 Microsoft 应用的 API 控制台。
已有 Microsoft Entra ID 的用户请登录 Microsoft Azure 开发者门户。随后在标有 Manage Microsoft Entra ID 的部分下选择 View。
注册应用
使用 Microsoft Entra ID 登录后,注册一个应用。
创建应用时,点击顶部菜单的 + Add,在下拉菜单中选择 App Registration。
{.align-center}
为连接的应用输入唯一的 Name。
选择合适的 Supported account type 非常关键,否则连接的应用将无法工作。希望将 Outlook 日历 连接到 Odoo 的用户应选择
Accounts in any organizational directory (Any Microsoft Entra ID directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox) 作为 Supported account types。
配置 Redirect URI 时,先在第一个下拉框中选择 Web,随后输入 Odoo 数据库的 URI(URL)并在后面加上 /microsoft_account/authentication。
::: example
在 Redirect URI 中输入
https://yourdbname.odoo.com/microsoft_account/authentication
将 [yourdbname.odoo.com] 替换为实际的 URL(统一资源定位符)。
:::
:::: tip
::: title
提示
:::
确保在 URI 中使用的数据库 URL(统一资源定位符)(域名)与系统参数 [web.base.url] 中配置的域名完全一致。
在 开发者模式(developer mode <developer-mode>)下,进入 Settings app → Technical header menu → Parameters section → System Parameters,找到 web.base.url 参数并检查其 Key 对应的值。
::::
{.align-center}
如需了解 URI 的限制与限制,请参考 Microsoft 的 Redirect URI(回复 URL)限制与限制 页面。
在应用注册页面,点击 Register 按钮完成注册。系统会生成 Application (client) ID,请复制该值,后续将在 outlook_calendar/odoo_setup 中使用。
{.align-center}
创建客户端密钥
完成 Microsoft Outlook Calendar 同步的第二个凭证是 客户端密钥(Client Secret)。用户 必须 添加客户端密钥,以便 Odoo 在无需用户交互的情况下进行身份验证。证书 为可选项。
在左侧菜单中点击 Certificates & secrets,随后点击 + New client secret 创建密钥。
{.align-center}
输入 Description,并选择密钥的 Expires 时间。可选项包括:90 days (3 months), 365 days (12 months), 545 days (18 months), 730 days (24 months) 或 Custom。Custom 允许管理员自行设定 Start 与 End 日期。
完成后点击 Add,即可 添加客户端密钥。
:::: tip
::: title
提示
:::
由于重置同步可能较为繁琐,Odoo 建议将客户端密钥的到期时间设为最大允许值(24 个月或自定义),以免频繁重新同步。
::::
复制生成的 Value,将在后续章节使用。
:::: warning
::: title
警告
:::
客户端密钥的值只能在创建后立即查看,之后将不再显示。请务必在离开页面前保存该密钥。
::::
Odoo 中的配置 {#outlook_calendar/odoo_setup}
在 Odoo 数据库中,进入 Calendar app → Configuration → Settings,勾选 Outlook Calendar 选项,并点击 Save 保存更改。
在 Microsoft Azure 门户的应用 Overview 页面,复制 Application (Client) ID(若尚未复制),粘贴至 Odoo 中的 Client ID 字段。
{.align-center}
将之前获取的 Value(客户端密钥值)粘贴到 Odoo 的 Client Secret 字段。
{.align-center}
最后,在 Odoo 的 Settings → General Settings 页面点击 Save。
与 Outlook 同步 {#outlook/sync}
:::: warning
::: title
警告
:::
Odoo 强烈建议在测试数据库和测试邮箱(不用于其他用途)中先行测试 Outlook 日历同步,然后再对生产数据库进行同步。
如果用户在同步前已在 Odoo 日历中存在过去、现在或未来的事件,Outlook 会把从 Odoo 拉取的这些事件视为新事件,并向所有参会者发送邮件通知。
为避免向所有过去、现在和未来的参会者发送不必要的邮件,用户应在首次同步前先将 Odoo 日历中的事件添加到 Outlook 日历,随后在 Odoo 中删除这些事件,再开始同步。
即使 Odoo 与 Outlook 日历已同步,Outlook 仍会在每次事件被编辑(创建、删除、取消归档、日期/时间变更)时向所有参会者发送通知,此行为无法通过 Odoo 侧进行修复。
综上,一旦用户将 Outlook 日历与 Odoo 日历同步后:
- 在 Odoo 中创建事件,Outlook 会向所有参会者发送邀请。
- 在 Odoo 中删除事件,Outlook 会向所有参会者发送取消通知。
- 在 Odoo 中取消归档事件,Outlook 会向所有参会者发送邀请。
- 在 Odoo 中归档事件,Outlook 会向所有参会者发送取消通知。
- 为事件添加联系人,Outlook 会向所有参会者发送邀请。
- 为事件移除联系人,Outlook 会向所有参会者发送取消通知。
::::
同步 Odoo 日历与 Outlook
在 Odoo 数据库中打开 Calendar 模块,点击页面右侧、月视图下方的 Outlook 同步按钮。
{.align-center}
同步为双向过程,即两个账户(Outlook 与 Odoo)的事件都会被合并。点击后页面会跳转至 Microsoft 登录页,若未登录则要求登录;随后点击 Accept 授权所需权限。
{.align-center}
:::: note
::: title
备注
:::
所有希望使用同步的用户只需在 Odoo 中执行 sync their calendar with Outlook <outlook/sync> 即可。Microsoft Azure 账户的配置只需完成一次,因为每个 Entra ID 租户的 client ID 与 client secret 均唯一,用于管理特定的 Microsoft 云服务实例。
::::
::: seealso
../../general/integrations/mail_plugins/outlook–google
:::
同步故障排查
有时 Microsoft Outlook Calendar 与 Odoo 的同步可能出现问题,可在数据库日志中查看同步错误。
此时需要对账户进行故障排查。可通过 Reset Account 按钮进行重置,路径为 Settings app → Manage Users,选择需要修改日历的用户后,点击其 Calendar 选项卡。
{.align-center}
在正确的日历下点击 Reset Account。
重置选项
以下重置选项可用于排查 Microsoft Outlook Calendar 与 Odoo 的同步问题:
{.align-center}
User’s Existing Events(用户现有事件):
Leave them untouched:保持事件不变。Delete from the current Microsoft Calendar account:从 Microsoft Outlook Calendar 中删除事件。Delete from Odoo:从 Odoo 日历中删除事件。Delete from both:同时从两端删除事件。
Next Synchronization(下一次同步):
Synchronize only new events:仅同步新事件(无论是 Outlook 还是 Odoo)。Synchronize all existing events:同步所有现有事件(无论是 Outlook 还是 Odoo)。
选择完毕后点击 Confirm,系统将按所选项修改用户事件并重新进行日历同步。