Oauth2 for Quickbooks Online-尝试为令牌交换授权代码时在VBA中获取无效客户端

Oauth2 for Quickbooks Online-尝试为令牌交换授权代码时在VBA中获取无效客户端,vba,ms-access,oauth-2.0,quickbooks-online,Vba,Ms Access,Oauth 2.0,Quickbooks Online,我有一位客户最近升级到Quickbooks Online。过去,他们使用MS Access数据库将Quickbooks与其他数据源连接起来。因为他们仍然希望通过Quickbooks使用Access数据库,我需要运行oAuth2进程。我已经能够完成第一步(握手/授权)并获得代码。当我要把它换成代币时,我被卡住了。我正在使用以下VBA代码: Dim httpReq As New MSXML2.ServerXMLHTTP60 'MSXML2.ServerXMLHTTP Dim sBase64 as s

我有一位客户最近升级到Quickbooks Online。过去,他们使用MS Access数据库将Quickbooks与其他数据源连接起来。因为他们仍然希望通过Quickbooks使用Access数据库,我需要运行oAuth2进程。我已经能够完成第一步(握手/授权)并获得代码。当我要把它换成代币时,我被卡住了。我正在使用以下VBA代码:

Dim httpReq As New MSXML2.ServerXMLHTTP60 'MSXML2.ServerXMLHTTP
Dim sBase64 as string
Dim sBody as string
Dim sKey as string

sBase64 = "Basic " & EncodeBase64 <myclient_idXXX:myclient_secretXXX>
sKey = <Authorization Code from step 1 of oAuth process>

httpReq.Open "POST", "https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer? HTTP/1.1"

httpReq.setRequestHeader "Accept", "application/json"
httpReq.setRequestHeader "Authorization", sBase64
httpReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
httpReq.setRequestHeader "Host", "oauth.platform.intuit.com"

sBody = "grant_type=authorization_code&code=" & skey & "&redirect_uri=http://localhost"

httpReq.send sBody

提前谢谢

我也有同样的问题。授权代码不正确。如果您尝试debug.print编码的授权,您将找到回车符。我把它拆了,把它修好了

AuthorizationHeader = 
    Replace(Base64Encode(client_id & ":" & client_secret), Chr(10), "")
AuthorizationHeader = 
    Replace(Base64Encode(client_id & ":" & client_secret), Chr(10), "")