【问题标题】:NodeJS can't connect to XERONodeJS 无法连接到 XERO
【发布时间】:2018-02-27 00:24:22
【问题描述】:

我使用 xero 作为我的会计软件。我有一个要求,即我的应用程序的一部分需要与 xero 集成以执行自动化。使用 nodejs sdk 似乎很容易,但事实是即使使用最简单的示例我也无法连接到 xero。代码如下:

const xero = require('xero-node');

const config = {
  "userAgent": "Firefox",
  "consumerKey": "<MY_CONSUMER_KEY>",
  "consumerSecret": "<MY_CONSUMER_SECRET>",
  "privateKeyPath": "./privatekey.pem"
};

const xeroClient = new xero.PrivateApplication(config);

xeroClient.core.contacts.getContacts()
  .then(contacts => {
    console.log(contacts);
  }).catch(err => {
    console.log(err);
  });

代码什么也不做,也不打印错误。有人处理过这个问题吗?

【问题讨论】:

  • 您可能已经这样做了,但请确保您正在触发代码运行。就像 put console.log 以确认该页面实际上正在执行。当没有任何反馈时,很难调试。

标签: node.js xero-api


【解决方案1】:

最可能的原因是您的私钥无效。如果您将这些行(https://github.com/XeroAPI/xero-node/pull/169/files)放入您的模块中,那么它将首先检查它。

您还可以复制其中几行并验证您的私钥。

当密钥无效时,SDK 会吞下异常。

另外,请确保您运行的是服务器端 - 而不是浏览器端。

【讨论】:

    【解决方案2】:

    解决了。我需要添加以下代码:

    if (config.privateKeyPath && !config.privateKey) 
          config.privateKey = fs.readFileSync(config.privateKeyPath);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 2014-11-06
      • 1970-01-01
      • 2014-10-18
      • 2018-03-08
      • 2021-06-25
      相关资源
      最近更新 更多