You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Node应用向Intuit QuickBooks API发起简单调用?

问题原因

你当前代码直接调用API接口前未完成OAuth2授权流程,没有获取有效access_token,所以接口返回缺少参数的错误。

正确配置步骤
  • 第一步:先登录Intuit开发者后台,在你的应用配置中添加本地回调地址(示例用http://localhost:5000/callback),替换原有代码中的官方沙盒调试重定向地址。
  • 第二步:在express中添加授权跳转路由和授权回调路由,完成授权后将返回的凭证存入oauthClient实例。
  • 第三步:修正API调用参数,查询账户接口的请求方法为GET,替换URL中的{companyId}为你的沙盒公司实际ID。
修改后完整代码
const express = require('express')
const OAuthClient = require('intuit-oauth')

const port = process.env.PORT || 5000
const app = express()

const oauthClient = new OAuthClient({
    clientId:'替换为你的实际clientId',
    clientSecret: '替换为你的实际clientSecret',
    environment: 'sandbox',
    redirectUri: 'http://localhost:5000/callback', // 替换为你在后台配置的回调地址
    logging:true
})

// 授权跳转路由
app.get('/auth', (req, res) => {
  const authUrl = oauthClient.authorizeUri({
    scope: [OAuthClient.scopes.Accounting], // 根据你需要的接口权限调整scope
    state: 'test-state'
  })
  res.redirect(authUrl)
})

// 授权回调路由
app.get('/callback', async (req, res) => {
  try {
    // 交换获取token
    const tokenResponse = await oauthClient.createToken(req.url)
    // 授权成功后调用测试API
    const apiResponse = await oauthClient.makeApiCall({
      url: 'https://sandbox-quickbooks.api.intuit.com/v3/company/替换为你的沙盒公司ID/account/1?minorversion=14',
      method: 'GET', // 原代码POST方法错误,查询接口用GET
      headers: {
        'Content-Type': 'application/json',
      }
    })
    console.log('API返回结果:', apiResponse.json)
    res.send('API调用成功,结果已打印到终端')
  } catch (e) {
    console.log('错误信息:', JSON.stringify(e))
    res.send('调用失败,请查看终端报错')
  }
})

app.listen(port, () => {
    console.log(`🖥️ Server listening on port ${port}`)
})
测试流程
  1. 启动服务后,在浏览器访问http://localhost:5000/auth
  2. 按照页面提示登录你的QuickBook沙盒账号完成授权
  3. 授权完成后会自动跳转回回调地址,终端会打印API返回的结果

内容的提问来源于stack exchange,提问作者Josh Simon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:12:04