Проверка подлинности токена для CURL в EXCEL VBA - PullRequest
0 голосов
/ 29 мая 2019

Клиент попросил, чтобы я собрал инструмент, чтобы взять доменное имя компании и каким-то образом придумать имя учетной записи.Я нашел API, с которым я могу работать, но я не настолько знаком с этим в VBA.

Вот процедура CURL, которую документация сайта дает для проталкивания доменного имени и получения компании.имя в качестве ответа:

curl 'https://company.clearbit.com/v2/companies/find?domain=segment.com' \
        -u sk_b3b05a8924c4f3df86248b4e38421cfa:

После нескольких попыток получить сообщение «Пожалуйста, подтвердите ваш запрос» я, наконец, дошел до того, что получаю сообщение об ошибке от API, я думаю, указывая, что яТеперь я правильно вызываю API.

Вот мой текущий код.Есть идеи, почему я получаю эту ошибку?

{"error":{"type":"api_error","message":"Sorry, something went wrong. We have been notified."}}
Public Function CallRestAPI2(strUrl1 As String)
    TargetURL = "https://company.clearbit.com/v2/companies/find?domain=toplinegroup.com"
    Set HTTPReq = CreateObject("WinHttp.WinHttpRequest.5.1")
    'HTTPReq.Option(4) = 13056 '
    HTTPReq.Open "GET", TargetURL, False
    HTTPReq.SetRequestHeader "Content-Type", "application/json"
    HTTPReq.SetRequestHeader "Accept", "application/json"
    HTTPReq.Send "-u sk_b3b05a8924c4f3df86248b4e38421cfa"
    Debug.Print HTTPReq.responseText
End Function

Есть идеи, что я делаю неправильно?

1 Ответ

0 голосов
/ 29 мая 2019

Понял это после прочтения в документации, и это было из-за неправильной передачи заголовка аутентификации.Вот мой код:

Public Function CallRestAPI3(strUrl1 As String)
    Dim xmlhttp As New MSXML2.XMLHTTP60, myurl As String
    myurl = "https://company.clearbit.com/v2/companies/find?domain=toplinegroup.com"
    xmlhttp.Open "GET", myurl, False
    xmlhttp.setRequestHeader "Authorization", "Bearer " + "sk_b3b05a8924c4f3df86248b4e38421cfa"
    xmlhttp.Send
    Debug.Print (xmlhttp.responseText)
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...