【发布时间】:2018-11-30 13:11:38
【问题描述】:
我正在使用 VBA 在 Salesforce 中获得授权,然后最终想要运行 Salesforce 报告并将结果转储到 Excel 中。我编写了以下内容来处理授权,但我收到了 unsupported_grant_type 错误。我到目前为止的代码:
Dim XMLHTTP As New MSXML2.XMLHTTP60
Dim username As String
Dim password As String
Dim PasswordnUsername As String
Dim argumentString As String
username = "myUsername"
password = "myPassword"
PasswordnUsername = password & ":" & username
argumentString = "?grant_type=password&" & _
"client_id=abc123&" & _
"client_secret=123abc&" & _
"username=" & username & "&password=" & password
MsgBox (argumentString)
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
XMLHTTP.Open "POST", "https://mysalesforce.com/services/oauth2/token", False
XMLHTTP.setRequestHeader "content-type", "application/x-www-form-urlencoded"
XMLHTTP.setRequestHeader "Authorization", "basic " + Base64Encode(PasswordnUsername)
XMLHTTP.send (argumentString)
MsgBox (XMLHTTP.responseText)
当我打印 XMLHTTP.responseText 时,这里会报告 unsupported_grant_type。
任何帮助将不胜感激。提前致谢。
T
【问题讨论】:
-
尝试删除
argumentString开头的第一个?,然后发送请求并查看是否收到不同的错误消息。所以:argumentString = "grant_type=password&" & _ "client_id=abc123&" & _ "client_secret=123abc&" & _ "username=" & username & "&password=" & password。此外,如果argumentString中的参数包含非 URL 安全字符,您可能需要对它们进行 URL 编码。 -
谢谢你。删除 ?成功了。我从没想过会这么简单。再次感谢!!
标签: vba salesforce authorization