Post JSON 请求字 VBA

Post JSON request in word VBA

我有以下 JSON 代码,我想在 word 中使用 VBA post 到 API(特别是 discord webhook)。

"color":0x7289da,
"fields":[
   {
      "name":"**Foo**",
      "value":var1,
      "inline":true
   },
   {
      "name":"**Bar**",
      "value":var2,
      "inline":true
   },
   {
      "name":"**baz**",
      "value":"qux",
      "inline":false
   }
],
"footer":{
   "text":"foobar"
}
}

我想在发送请求时将 json 中的 var1var2 分别替换为它们各自的字符串变量值 var1var2。变量代码:

Private Sub login_button_label_Click()
Dim var1 As String
Dim var2 As String

var1 = login.foo.Text
var2 = login.bar.Text
End Sub

以上代码从用户表单中的 2 个文本框获取值。

我如何 post 这个 json 请求到特定的 link/webhook?

解决了我自己的问题,我不会详细说明(因为我不完全理解)但这是一个代码示例,供需要 post JSON 的任何人使用一个 API。对于这个例子,我 post 编辑了 discord webhook。

        Dim objHTTP As Object
        Dim Json As String
        Json = "{""content"":""Howdy partner!"",""embeds"":null}"

        Dim result As String

        Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
        URL = "https://discord.com/api/webhooks/guildid/webhookid"
        objHTTP.Open "POST", URL, False

        objHTTP.setRequestHeader "Content-type", "application/json"
        objHTTP.send (Json)
        result = objHTTP.responseText


        Set objHTTP = Nothing

用你的 URL 替换 URL 并根据需要编辑 JSON,注意 JSON 需要双引号,所以你需要做类似的事情.

如果您需要在 JSON 代码中加入变量,这里有一个例子:

Dim VARIABLE as String
VARIABLE = "Howdy!"
Json = "{""content"":""" & VARIABLE & """,""embeds"":null}"

需要 NO 外部库。纯VBA.