问题描述
我们目前有一个访问数据库,并正在尝试使用TBA连接到API。下面的代码是到目前为止的内容。我们只能使用用户名和密码进行连接,但无法使TBA代码正常工作。任何帮助深表感谢。我已经仔细检查了字符串。
'working code
'reader.Open "GET","NetSuite API URL,False
'reader.setRequestHeader "Authorization","NLAuth nlauth_account=****,nlauth_email=***,nlauth_signature=****,nlauth_role=***"
reader.Open "GET","NetSuite API URL",False
Dim RealmStr As String
Dim ConsumKeyStr As String
Dim ConsumSecStr As String
Dim TokenStr As String
RealmStr = "..."
ConsumKeyStr = "..."
ConsumSecStr = "..."
TokenStr = "..."
TokenSecStr = "..."
Application.Run "CreateHeader",RealmStr,ConsumKeyStr,ConsumSecStr,TokenStr,TokenSecStr
XMLReqStr = Chr$(34) & XMLReqStr & Chr$(34)
reader.setRequestHeader "Authorization",XMLReqStr
reader.setRequestHeader "Content-Type","application/xml"
reader.Send
Do Until reader.ReadyState = 4
DoEvents
Loop
这是创建头函数。
Public Function CreateHeader(Realm As String,ConsumerKey As String,ConsumerSecret As String,Token As String,TokenSecret As String) As String
Dim auth_Nonce As String
Dim auth_Timestamp As String
Dim auth_Base As String
Dim auth_SigningKey As String
Dim auth_Signature As String
' create nonce and timestamp
auth_Nonce = CreateNonce()
auth_Timestamp = VBA.CStr(VBA.DateDiff("s",#1/1/1970#,ConvertToUtc(VBA.Now)))
' Create needed parts of authorization header
auth_Base = CreateBaseString(auth_Nonce,auth_Timestamp,ConsumerKey,Token)
auth_SigningKey = ConsumerSecret & "&" & TokenSecret
auth_Signature = HMACSHA256(auth_Base,auth_SigningKey,"Base64")
XMLSignStr = auth_SigningKey
' Generate header
CreateHeader = "OAuth "
' Add realm (if exists)
'If Realm <> "" Then
' CreateHeader = CreateHeader & "realm=" & Realm & ","
'End If
If Realm <> "" Then
CreateHeader = CreateHeader & "realm=" & Chr$(34) & Realm & Chr$(34) & ","
End If
CreateHeader = CreateHeader & "oauth_consumer_key=""" & ConsumerKey & ""","
CreateHeader = CreateHeader & "oauth_token=""" & Token & ""","
CreateHeader = CreateHeader & "oauth_signature_method=""HMAC-SHA256"","
CreateHeader = CreateHeader & "oauth_timestamp=""" & auth_Timestamp & ""","
CreateHeader = CreateHeader & "oauth_nonce=""" & auth_Nonce & ""","
CreateHeader = CreateHeader & "oauth_version=""" & "1.0" & ""","
CreateHeader = CreateHeader & "oauth_signature=""" & UrlEncode(auth_Signature) & """"
CreateHeader = CreateHeader
XMLReqStr = CreateHeader
XMLSignStr = UrlEncode(auth_Signature)
End Function
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)