能否通过Google Apps Script创建QuickBooks Desktop的API连接?
能否用Apps Script对接QuickBooks Desktop提取发票数据?
QuickBooks Desktop(QBDT)和QuickBooks Online(QBO)的API体系完全不同:
- QBO基于RESTful API,可直接通过HTTP请求对接,这也是现有Apps Script教程能直接生效的核心原因
- QBDT没有公开的云端REST API,它依赖QBXML协议或官方QuickBooks Desktop SDK,这些均针对本地/局域网环境设计,无法直接被云端的Apps Script调用
可行的实践方案
要实现Apps Script对接QBDT提取发票数据,必须通过中间层搭桥,常见两种落地方式:
1. 本地代理脚本+网络转发
- 在安装QBDT的电脑上运行本地代理脚本(如Python、Node.js),脚本需完成两个核心动作:
- 通过QBXML或QBDT SDK连接本地QBDT,执行发票查询指令
- 搭建简单Web服务,将查询到的发票数据通过HTTP接口暴露
- 在Apps Script中,调用
UrlFetchApp请求该本地Web服务接口,获取发票数据 - 注意:需确保本地电脑与Apps Script网络互通,可通过内网穿透工具将本地服务暴露到公网,或在同一局域网内配置访问权限
2. 第三方中间服务中转
- 部分自动化平台(如Zapier、Make)或Intuit官方集成工具支持同时对接QBDT与Google服务
- 先通过这类工具将QBDT发票数据同步至Google Sheets/Drive,再用Apps Script读取同步完成的数据
- 该方案无需自行编写本地代理,适合非开发背景用户
关键细节提示
- QBDT的QBXML查询需遵循官方语法规范,示例发票查询请求结构:
<?xml version="1.0" encoding="utf-8"?> <?qbxml version="13.0"?> <QBXML> <QBXMLMsgsRq onError="stopOnError"> <InvoiceQueryRq> <MaxReturned>100</MaxReturned> <!-- 可添加日期范围、客户ID等过滤条件 --> </InvoiceQueryRq> </QBXMLMsgsRq> </QBXML> - 本地代理脚本需通过QBDT管理员权限完成身份验证
- 若使用内网穿透,建议采用HTTPS加密保障数据传输安全
内容的提问来源于stack exchange,提问作者viciousJester
相关产品推荐
相关产品推荐

