使用ADF Web Activity获取QuickBooks Online新令牌遇问题求示例
ADF Web Activity 配置示例:从QuickBooks Online 获取新令牌
核心配置细节
1. 请求基础设置
- 请求方法:POST
- 请求URL:
https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
2. 请求头配置
必须添加以下头部:
Content-Type:application/x-www-form-urlencoded
3. 请求体配置(x-www-form-urlencoded格式)
填入以下键值对(建议从Azure密钥保管库引用敏感信息,避免硬编码):
grant_type:refresh_tokenrefresh_token:@Microsoft.KeyVault(SecretUri='<你的Refresh Token密钥URI>')client_id:@Microsoft.KeyVault(SecretUri='<你的Client ID密钥URI>')client_secret:@Microsoft.KeyVault(SecretUri='<你的Client Secret密钥URI>')
4. 认证方式(二选一)
方式一:Basic 认证(ADF内置配置)
在Web Activity的Authentication选项卡:
- 选择
Basic类型 - Username填Client ID(或密钥保管库引用)
- Password填Client Secret(或密钥保管库引用)
方式二:手动构造Authorization头
将Client ID:Client Secret字符串做Base64编码,然后在请求头添加:
Authorization:Basic <Base64编码后的字符串>
常见错误排查
1. invalid_grant 错误
- 直接原因:Refresh Token已失效。QBO的Refresh Token有效期为24小时,且每次刷新令牌会返回新的Refresh Token,必须使用最新的那个进行下一次请求,旧令牌会立即失效。
- 排查步骤:确认当前使用的Refresh Token是上一次成功刷新后返回的最新值,而非初始令牌。
2. bad_request 错误(ADF中)
- 检查请求体格式:必须是
application/x-www-form-urlencoded,不能使用JSON格式。 - 核对参数:确保
grant_type、refresh_token、client_id、client_secret四个参数完整且拼写正确,无空值。 - 密钥保管库权限:确认ADF有读取对应密钥的权限,引用路径无误。
内容的提问来源于stack exchange,提问作者Tyler Buckingham
相关产品推荐
相关产品推荐

