вызов остальных API через VBA - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь вызвать веб-сервис на основе отдыха из маркетингового облака Salesforce (которое я могу легко вызвать с помощью мыльного интерфейса пользователя) из VBA одним нажатием кнопки

однако я не получаю ответ, как ожидалось. я не могу отлаживать на стороне Salesforce, так как у меня нет доступа к маркетинговым облачным серверам

Private Sub cmd_connect_Click()
    Dim clientSecret As String
    Dim clientId As String
    Dim TenentId As String
    Dim objRequest As Object
    Dim strUrl As String
    Dim blnAsync As Boolean
    Dim strResponse As String
    Dim ReqBody As String

clientId = Worksheets("01Configure").txt_clientId.Value
clientSecret = Worksheets("01Configure").txt_clientSecret.Value
TenentId = Worksheets("01Configure").txt_TenentId.Value
strUrl = "https://" + TenentId + ".auth.marketingcloudapis.com" + "/v1/requestToken"

ReqBody = "{" & Chr(34) & "clientId" & Chr(34) & ":" & Chr(34) & "" + clientId + "" & Chr(34) & "," & Chr(34) & "clientSecret" & Chr(34) & ":" & Chr(34) & "" + clientSecret + "" & Chr(34) & "}"
MsgBox ReqBody

Set objRequest = CreateObject("MSXML2.XMLHTTP")
MsgBox strUrl
blnAsync = True

With objRequest
    .Open "POST", strUrl, blnAsync
    .SetRequestHeader "Content-Type", "application/json"
    .Send ReqBody

    'spin wheels whilst waiting for response
    While objRequest.readyState <> 4
        DoEvents
    Wend
    strResponse = .ResponseText
End With
MsgBox strResponse
End Sub

Я ожидаю ответа типа:

{
       "accessToken": "Zp0JAhnyvWBBsS23e79Yp0CB",
       "expiresIn": 3479
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...