Automatisch 连接 Odoo 完整指南:Host、Port、Database 与 API Key 配置详解
2026/9/15 11:45:36 网站建设 项目流程

Automatisch 连接 Odoo 完整指南:Host、Port、Database 与 API Key 配置详解

【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch

Automatisch 作为开源工作流自动化平台(即开源版 Zapier 替代方案),内置了对 Odoo 的支持,可通过 XML-RPC 外部 API 与 Odoo 数据库交互。本文以仓库内官方文档 packages/docs/pages/apps/odoo/connection.md 为主体,结合后端 Odoo 集成源码,完整讲解如何在 Automatisch 中创建 Odoo 连接、每个连接字段的取值规则与默认值,以及连接验证的底层实现原理。读完本文,你将能独立完成 Odoo 连接的配置与排错,并理解连接凭证在后续自动化流程中是如何被复用的。

Odoo 集成概览:Automatisch 如何对接 Odoo

在 Automatisch 后端中,Odoo 是作为标准应用(App)注册的,其应用定义位于 packages/backend/src/apps/odoo/index.js:

export default defineApp({ name: 'Odoo', key: 'odoo', iconUrl: '{BASE_URL}/apps/odoo/assets/favicon.svg', authDocUrl: '{DOCS_URL}/apps/odoo/connection', supportsConnections: true, baseUrl: 'https://odoo.com', apiBaseUrl: '', primaryColor: '#9c5789', auth, actions, });

关键点在于:

  • supportsConnections: true表示该应用支持连接(Connection)体系,即用户必须先配置一组 Odoo 凭证,之后才能在执行流(Flow)中使用 Odoo 的动作。
  • authDocUrl指向的正是本篇文章所依据的官方连接文档,说明连接配置是整个 Odoo 集成使用流程的第一步。
  • 与 GitHub、Slack 等基于 OAuth 的应用不同,Odoo 集成使用的是「邮箱 + API Key」的凭证方式,因此每个用户都需要手动提供自己的 Odoo 服务信息

创建 Odoo 连接:需要提供的五项信息

根据官方文档 connection.md,要创建 Odoo 连接,需要按以下步骤依次填写信息:

  1. Host Name(主机名):填写 Odoo 服务所在的主机地址。
  2. Port(端口):填写 Odoo 服务运行的端口。
  3. Database Name(数据库名):填写要操作的 Odoo 数据库名称。
  4. Email Address(邮箱地址):填写将要与数据库进行交互的账户邮箱。
  5. API Key(API 密钥):填写该 Odoo 账户对应的 API Key。

其中,API Key 需要在 Odoo 侧生成。Odoo 官方 API 文档中说明了如何创建 API Key(通常位于 Odoo 账户的偏好设置 / 用户设置中,可针对外部 API 调用生成专用密钥)。在 Automatisch 中配置连接前,请先确保已在 Odoo 中完成 API Key 的创建,并将密钥妥善保管——后续连接验证与流程执行都会使用它。

连接字段深度解析:默认值与取值规则

官方文档仅给出了字段名称,而连接表单的完整定义位于源码 packages/backend/src/apps/odoo/auth/index.js。对照源码可以还原出连接表单的完整字段结构,其中包含文档未列出的Secure(安全协议)字段,实际填写时应一并注意:

字段 Key界面标签类型是否必填默认值说明
hostHost NamestringOdoo 服务器主机名,例如sub.domain.com不带协议前缀,即不要写https://
portPortstring443主机运行的端口,默认 443(HTTPS)
secureSecuredropdowntrue主机是否通过安全协议通信,可选值为True/False
databaseNameDatabase NamestringOdoo 数据库名称
emailEmail Addressstring与数据库交互的账户邮箱地址
apiKeyAPI KeystringOdoo 账户的 API Key

几个值得注意的取值细节

  • Host 不要带协议:源码中字段描述明确要求填写sub.domain.com这种不带协议的主机名。协议是否安全通过secure字段控制,而不是写进 host 里。
  • Port 默认 443:云上部署的 Odoo 通常走 HTTPS(443);如果是自建实例且未启用 TLS,则需要把secure改为False,并将端口改为 Odoo 实际监听的端口(例如 8069)。
  • Secure 字段的取舍secure决定底层 XML-RPC 客户端使用普通连接还是 TLS 加密连接(详见下文源码分析)。生产环境建议保持True
  • 邮箱 + API Key 成对使用:Odoo 的认证模型是「数据库 + 用户名(邮箱)+ API Key」,三者共同参与认证,因此邮箱必须与生成 API Key 的账户一致,且该账户需对该数据库有访问权限。

连接验证的底层原理:XML-RPC 认证链路

创建连接时,Automatisch 并不会直接保存凭证了事,而是会调用verifyCredentials对凭证做一次真实认证。这条验证链路完整展示了上述字段的底层用途:

  1. 构造 XML-RPC 客户端:在 packages/backend/src/apps/odoo/common/xmlrpc-client.js 的getClient中,会根据hostportsecuresecure === 'true'时使用xmlrpc.createSecureClient,否则使用xmlrpc.createClient)构造客户端,并拼接 XML-RPC 路径/xmlrpc/2/<path>
  2. 调用 authenticate 方法authenticate通过 XML-RPC 调用 Odoo 的authenticate方法,参数为:
params: [ $.auth.data.databaseName, // 数据库名 $.auth.data.email, // 邮箱 $.auth.data.apiKey, // API Key [], // 空环境上下文 ]
  1. 校验返回值:如果认证成功,Odoo 返回用户 ID(uid,整数);若返回值不是整数,则抛出错误Failed to connect to the Odoo server. Please, check the credentials!
  2. 写入连接显示名:验证通过后,verify-credentials.js 会把连接的显示名称设置为${email} @ ${databaseName} - ${host},方便你在连接列表中区分不同环境(如开发库、生产库)。
  3. 定期复验:is-still-verified.js 会再次调用verifyCredentials,用于在后续使用中周期性确认连接凭证仍然有效。

认证失败时的常见原因

结合认证链路,可以推断出最常见的失败场景:

  • 数据库名拼写错误或邮箱对应的账户无权访问该数据库,导致authenticate返回非整数;
  • API Key 无效(被撤销、过期或复制不完整);
  • host 填入了协议前缀(如https://odoo.example.com),导致 DNS 解析与 XML-RPC 路径拼接异常;
  • 端口 / Secure 设置与服务端实际配置不一致,导致无法建立 TCP 或 TLS 连接。

连接成功之后:Odoo 动作如何使用这些凭证

连接配置完成后,便可在流程中使用 Odoo 提供的动作。当前 Odoo 集成内置的动作是Create Lead(创建线索/商机),定义在 packages/backend/src/apps/odoo/actions/create-lead/index.js,对应官方动作文档 packages/docs/pages/apps/odoo/actions.md。

该动作在运行时会:

  1. 再次调用authenticate($)获取uid
  2. 通过execute_kw调用 Odoo 的crm.lead模型create方法,写入 Name、Type(lead/opportunity)、Email、Contact Name、Phone、Mobile 等字段;
  3. 其中 Type 字段为下拉选项,可选Lead(线索)或Opportunity(商机)。

可以看到,整个执行过程完全复用了连接中保存的databaseNameemailapiKey三个字段——这正是「连接」机制的意义所在:凭证只需在创建连接时配置一次,即可被所有依赖该连接的流程安全复用。

配置速查清单

最后,将整个配置过程整理为一份可复制的速查清单:

  1. 在 Odoo 账户设置中生成 API Key(Odoo 官方外部 API 文档有详细说明);
  2. 进入 Automatisch 的 Connections 页面,选择 Odoo;
  3. 填写 Host Name(不带协议的主机名,如odoo.example.com);
  4. 填写 Port(默认443,自建非 TLS 实例请调整);
  5. 选择 Secure(True/False,与端口/协议保持一致);
  6. 填写 Database Name、Email Address、API Key;
  7. 提交后等待 Automatisch 自动验证——验证通过后连接即创建成功,可立即在流程中使用 Odoo 的 Create Lead 动作。

若验证失败,请优先核对数据库名、邮箱与 API Key 三者是否与 Odoo 侧完全一致,其次检查 host / port / secure 的组合是否与你的 Odoo 部署方式匹配。

【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询