【问题标题】:JSON posting to update Trello Custom Field from VBAJSON 发布以从 VBA 更新 Trello 自定义字段
【发布时间】:2021-01-27 15:53:25
【问题描述】:

我在 Excel 中使用 VBA 和 Tim Hall 的令人惊叹的 VBA-Tools,我几乎可以做所有与 trello 相关的事情,创建卡片、列表、cmets 等

最近几天让我感到沮丧的是,我无法在卡片的自定义字段中输入值,我尝试了所有我能想到的方法

这是代码

 Sub atualizaCustomField(listaNome As String, cardNome As String, idCF As String, valor As String)
  Dim Client As New WebClient
  Client.BaseUrl = "https://api.trello.com/1/"
  Dim Request As New WebRequest

  Request.ContentType = "application/json"

  Request.Method = WebMethod.HttpPut
  Request.Resource = "cards/{idCard}/customField/{idCustomField}/item"
  Request.AddUrlSegment "idCard", pegaIDCard(listaNome, cardNome)
  Request.AddUrlSegment "idCustomField", idCF
  
  Request.AddQuerystringParam "key", ApplicationKey
  Request.AddQuerystringParam "token", UserToken
  Debug.Print Request.FormattedResource
   
  Dim Response As WebResponse
  'Set Response = Client.Execute(Request)
  Set Response = Client.PostJson(Client.BaseUrl & Request.FormattedResource, valor)
  Debug.Print valor
  Debug.Print Response.StatusCode & ": " & Response.Content
End Sub

与此不同的是,您必须发布 JSON,而不是像其他所有内容一样简单地发出请求,必须匹配此示例(来自 trello 开发者网站):

{
  "value": {
    "text": "<string>"
  }
}

在我的代码中,变量“valor”保存了这个字符串。

【问题讨论】:

    标签: json excel vba rest trello


    【解决方案1】:

    我知道这是 9 个月前的事,但我遇到了同样的问题并找到了可能对其他人有用的解决方案。

    正如 OP 所说,“值”字段需要具有 json 格式并放置在请求正文中。这是通过将 Dictionary 类型传递给 .AddBodyParameter 方法来实现的。

    Dim body as Object
    Set body = New Dictionary
    body.Add "text", "<string>"
    Request.AddBodyParameter "value", body
    

    【讨论】:

    • 并使用 Client.Execute(Request) 而不是 Client.PostJson
    猜你喜欢
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2015-03-08
    • 2011-10-29
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多