Я пытался обернуть голову вокруг этой операции VBA-Web c http://vba-tools.github.io/VBA-Web/docs/, чтобы передать auth_key и другие параметры в запросе post. Я понимаю концепцию кодирования auth_key, как объяснено здесь Как передать ключ API в VBA для получения и отправки запроса? . Но мне нужна помощь, чтобы включить все параметры ниже в VBA.
ОБНОВЛЕНИЕ: я смог заставить работать код QHarr ниже. Но мне все еще трудно использовать свои собственные параметры скручивания ниже. Я пытался использовать EncodeBase64 (apikey), но я еще не там.
Public Sub GetResults()
Dim data As String, json As Object '< VBE > Tools > References > Microsoft Scripting Runtime
data = "{""domainNames"":[""google.com""]}"
With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "POST", "https://api.dev.name.com/v4/domains:checkAvailability", False
.setRequestHeader "User-Agent", "Mozilla/5.0"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
.setRequestHeader "Authorization", "Basic " + _
EncodeBase64("username" + ":" + "Token")
.send data
Set json = JsonConverter.ParseJson(.responseText)
Dim result As Object
For Each result In json("results")
Debug.Print result("domainName")
Next
End With
End Sub
Function EncodeBase64(text As String) As String
Dim arrData() As Byte
arrData = StrConv(text, vbFromUnicode)
Dim objXML As MSXML2.DOMDocument60
Dim objNode As MSXML2.IXMLDOMElement
Set objXML = New MSXML2.DOMDocument60
Set objNode = objXML.createElement("b64")
objNode.DataType = "bin.base64"
objNode.nodeTypedValue = arrData
EncodeBase64 = Application.Clean(objNode.text)
Set objNode = Nothing
Set objXML = Nothing
End Function
Вот API do c - https://cloud.ibm.com/apidocs/
Запрос функции:
curl -X POST \
-H "Content-Type: application/json" \
-u "apikey:{apikey}" \
-d @parameters.json \
"{url}/v1/analyze?version=2019-07-12"
Пример параметра:
{
"features": {
"semantic_roles": {}
},
"text": "IBM has one of the largest workforces in the world"
}