首页 > 解决方案 > 如何使用 node.js 刷新快速手册的 oauth2 访问令牌?

问题描述

我正在 node.js 中编写脚本以在 Quickbooks 中自动生成发票。我正在使用 node-quickbooks 库连接到 Quickbooks,一切都很好,除了每次访问令牌过期时(每小时)我都必须从 quickbooks oauth 游乐场获取访问令牌和刷新令牌。我正在寻找一些帮助来弄清楚如何自动刷新访问令牌,这样我就不必再手动执行此操作了。

const QuickBooks = require("node-quickbooks");

const clientId = "";
const clientSecret = "";
const redirectUri = "";
const realmId = "";

var accessToken = "";
var refreshToken = "";

var qbo = new QuickBooks(clientId,      // consumer key
                         clientSecret,  // consumer secret
                         accessToken,
                         false,         // no token secret for oAuth 2.0
                         realmId,
                         true,          // use the sandbox?
                         true,          // enable debugging?
                         null,          // set minorversion, or null for the latest version
                         "2.0",         // oAuth version
                         refreshToken
);

const quickbooksID = "59";

qbo.getCustomer(quickbooksID, (err, customer) => { // get id
    if (err) console.log(err);
    else qbo.getItem('19', (err, item) => {
        if (err) console.log(err);
        else qbo.createInvoice({
            "Line": [
                {
                "DetailType": "SalesItemLineDetail",
                "Amount": 32.0,
                "SalesItemLineDetail": {
                    "ItemRef": {
                        "name": item.Name, // qbo.getItem()
                        "value": item.Id
                    },
                    "Qty": 5.0
                }
                }
            ],
            "CustomerRef": {
                "value": customer.Id,
                "name": customer.DisplayName
            }
            }, (err) => {
                if (err) console.log(err);
            })
    })
})

出于隐私原因,我已经删除了客户机密之类的东西,请放心,它们就在那里。我真的很感激这方面的任何帮助。蒂亚!

如果有帮助,这是特定的错误代码:

"error": [
      {
        "message": "message=AuthenticationFailed; errorCode=003200; statusCode=401",
        "detail": "Token expired: AB01632845164r8NbakMicxhIqC9mf69lzQMX907r73MtGTdT7",
        "code": "3200",
        "element": null
      }
    ]

标签: node.jsoauth-2.0quickbooks

解决方案


推荐阅读