Xero - 带 zapier 的 oauth 流程

Xero - oauth flow with zapier

我正在研究在 zapier 中添加一个 webhook,它将使用 xero 发票 api 来发送发票。 Xero 没有 zapier 操作来执行此操作。

我曾考虑使用 oauth-2 beta,但它的流程复杂,不适合我在简单 restful 设置中仅连接到一个组织的用例。

关于如何设置它的任何想法?

我不是 Zapier 专家,但我已经成功地创建了一个 OAuth 2.0 集成,其中包含一个成功发送发票的操作。它确实需要一些调整。我是通过 UI 完成的,但如果您愿意,显然可以使用 CLI 工具。如果有人有任何改进建议,请告诉我!

创建您的新集成和 select OAuth 2.0 用于您的身份验证。像往常一样设置重定向 url、客户端 ID 和客户端密码。添加一些范围(通过电子邮件发送发票需要 accounting.transactions)和

勾选“我想在未经授权的错误时自动刷新”选项

对于测试端点使用 GET https://api.xero.com/connections

现在,转到测试身份验证并完成授权流程以连接您的组织。测试调用的响应将包含您可以复制到剪贴板的 tenantId。

单击“保存并完成”,然后从左侧导航转到“高级”部分。您可以在此处添加一个 TENANT_ID 环境变量并粘贴您在剪贴板中的 tenantId 值。

现在您已经设置了授权,您可以创建通过电子邮件发送发票的操作。单击添加操作并填写名称等。在输入设计器选项卡上添加 InvoiceID 作为输入字段。

然后转到 API 配置选项卡并配置您的 API 请求。在这里你需要切换到代码模式:

您需要从标准模板add/change做三件事

  1. 将 InvoiceID 输入字段添加到 URL
  2. 添加 xero-tenant-id header 和 TENANT_ID 环境变量
  3. 硬编码响应 object 例如{“结果”:“成功”}。这是因为 Zapier 不喜欢你从 Xero API 返回的空响应 body。可能有一种不那么棘手的方法可以做到这一点,但它确实起作用了。

现在,如果您使用来自您组织的有效 InvoiceID 测试 API 请求,电子邮件将从 Xero 发送。

我已经把我的集成 up on Github 包括其他基本示例,如检索发票和创建联系人。希望对您有所帮助。

感谢您 post 这样做!一直想在 Zapier 中进行一些自定义 Xero 集成,这非常有帮助。

我可以 post,但无法对上述主题发表评论。它非常有用并且是正确的答案,但这里有一些我需要更新才能使其工作的东西:

  1. offline_access 添加到范围以接收 refresh_token 参数。没有那个范围,我在 Zapier 中收到关于未收到 refresh_token.

    的错误
  2. 作为配置 API 请求的一部分,删除此处屏幕截图中的第 11 行 params

  3. Zapier 的输入(最后一张截图的第 2 行)的格式应该是 {{bundle.inputData.BankTransactionID}},而不是 ${bundle.inputData.BankTransactionID}

  4. 不再需要“破解”const results 行;但是,您确实需要将结果包装在括号中,以便它 returns 是一个数组,而不是一个对象:return [results];