json - 如何为 Xero 构建自定义 Zapier 集成
问题描述
我正在尝试在 zapier 中构建自己的集成,这将允许我在 Xero 中创建引号(当前本地不支持的功能)。我一直在使用这篇文章和这篇参考资料来帮助我。
我已经到了创建动作并使用测试数据对其进行测试的地步。不幸的是,我得到的响应是“得到 400 调用 POST https://identity.xero.com/connect/token,预期为 2xx。” 也许我错误地发送了 json 数据。我尝试过使用“漂亮”和“原始”方式发送数据:
zapier“专家”可以帮助我吗?也许通过创建自己的 xero 集成?
编辑
解决方案
以下是如何完成它,但请记住,您需要执行搜索操作来查找所需 ID 的信息。鉴于您的错误,我认为问题在于您没有应该在标题中定义的tenantId,如下所示:'xero-tenant-id': 'YOURNUMBERHERE'
。请参阅下面的第 8 步以将其与您的进行比较。
如果你找不到它,这些是我采取的步骤:
XERO
- 创建帐号
- 创建Xero 应用并将 Zapier OAuth 重定向 URL 添加到 Xero 重定向部分(来自“步骤 2”中的“Zapier Dev”应用)。
扎皮尔
- 在您的开发应用程序中,将来自 xero 的客户端 ID 和密码添加到“Zapier Dev step 3”中的相应部分
添加 带有 HTTP 标头的
POST
端点(在“Zapier Dev step 4”中请求) :https://login.xero.com/identity/connect/authorize
response_type: code client_id: {{process.env.CLIENT_ID}} redirect_uri: {{bundle.inputData.redirect_uri}} state: {{bundle.inputData.state}}
添加范围:openid profile email accounting.transactions
可以使用以下方法获取刷新令牌('Zapier Dev step 4: Access Token'):
REFRESH TOKEN: POST https://identity.xero.com/connect/token TEST CALL: GET https://api.xero.com/connections
- 保留返回的tenantId 以备后用
- 测试身份验证。它有效吗?如果是,请继续执行步骤 7。
- 如果测试失败:检查拼写错误,检查正确的 url 并确保您的标题符合 xero 的要求(请参阅底部的链接)。
添加名为 createQuote 的操作
-添加输入联系人ID
- 添加带有描述标签的输入项目
-添加输入tenantId
在 url 添加 POST 到 API Config
https://api.xero.com/api.xro/2.0/Quotes
示例 POST:
const options = { url: 'https://api.xero.com/api.xro/2.0/Quotes/', method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': `Bearer ${bundle.authData.access_token}`, 'xero-tenant-id': bundle.inputData.tenantID }, params: { }, body: { "Contact": { "ContactID": bundle.inputData.ContactID }, "Date": "2019-11-29", "LineItems": [ { "Description": bundle.inputData.LineItems } ] } } return z.request(options) .then((response) => { response.throwForStatus(); const results = z.JSON.parse(response.content); return results; });
插入测试contactID、tenantID、lineitems并测试出来
完成此操作后,如果您希望全部自动化,您将需要创建一个搜索操作来获取联系人 ID 和租户 ID。如果您有问题,我发现启动文档很有用。
推荐阅读
- javascript - setInterval 一直在做错误的 if 语句
- javascript - 如何在打字稿中总结对象的属性?
- javascript - 修复 Nuxt.Js 项目中的“experimantalDecorator 错误”,尽管我已修复“experimantalDecorator:true”
- javascript - JavaScript 按天显示盈亏
- python - 嵌套列表到表python
- angular - Liferay js bundler - 未删除未使用的节点模块
- arrays - 数组组合
- django - 如何向嵌套序列化程序添加默认值?
- javascript - 键移动后缩放翻译问题
- html - 如何在 Angular 中定位材质菜单?