快书 JavaScript 客户端
QuickBooks的JavaScript客户端. 方便地连接到快取 Books API. 进行查询并创建对象。 TypeScript定义被构建在其中.
安装
npm i @balancer-team/quickbooks
配置
import { QuickBooks } from '@balancer-team/quickbooks'
export const qb = new QuickBooks({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET',
redirectUri: 'YOUR_REDIRECT_URI',
environment: 'SANDBOX_OR_PRODUCTION',
})
获取 Auth URL
启动 OAuth 2.0 流量, 获取 aut url .
const authUrl = qb.getAuthUrl()
从 Grant 获取访问托肯
通过使用赠款细节取回访问符来完成 OAuth 2.0 流量.
const token = await qb.getTokenFromGrant({
code: 'GRANT_CODE',
state: 'STATE_STRING',
realmId: 'REALM_ID',
})
访问并刷新托肯
这个 token 是一个对象,包括访问和刷新令牌、域ID、过期和其他元数据。 托肯没有储存在 qb 举个例子 您必须写自己的应用程序逻辑来管理符号 。 这使得创建多租户应用程序更加容易,不同代号必须用于不同的用户.
因图伊特的访问符有效1小时,刷新符有效100天. 您应该通过调用以下函数来保证您正在使用主动访问符 。 如果访问令牌仍然有效,它会简单地返回令牌. 如果需要刷新,它会将请求发送到因图伊特并获得刷新的代号.
const validToken = await qb.getValidToken(staleToken) // -->
// {
// access_token: 'eyJlbmMiOiJBMTI4...',
// refresh_token: 'AB11734177244q21...',
// token_type: 'bearer',
// realm_id: '8241451349686734',
// expires_in: 3600,
// expires_at: 1725454384,
// x_refresh_token_expires_in: 8726400,
// x_refresh_token_expires_at: 1733918044,
// }
通用查询请求
QuickBooks API使用查询访问资源. 和大多数API不同, 获取资源时不需要指定终点 。 相反,资源是以类似SQL的查询语言指定的. 参见 API 浏览器 用于构建您的询问.
const vendors = await qb.query({
token: token,
query: 'select * from Vendor',
})
普通用途员额请求
使用任何端点并使用一般用途后台请求创建任何对象. 参见 API 浏览器 用于结束点和对象结构.
const createdJournalEntry = await qb.post({
token: token,
endpoint: '/journalentry',
body: newJournalEntry,
})