node.js - 如何使用 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
}
]
解决方案
推荐阅读
- sql-server - SQL Server 日期数据类型变为 nvarchar
- android - AndroidStudio 中的非法 main-dex-list 条目
- asp.net-core - Aspnetcore:如何发布松散耦合的项目?
- python - 自动优化 Pandas Dtypes
- javascript - 最后以空值排序
- widget - 使用 Drupal hook_form_alter 有条件地更改字段小部件类型
- java - 如何使用 oracle jdk 8 安装 tomcat 本机
- java - 对象引用未保存的瞬态实例 - 在刷新休眠 JPA 之前保存瞬态实例
- deep-learning - 如何对抗机器学习数据集中的不平衡类
- r - 如何将物种箭头/向量添加到排序图中