将选择列表的值传递给 Office365 连接器卡上的回调 URL 正文?(有效负载格式)



我正在尝试开发一个连接器。

我已经创建了卡和网络钩子,并为我的节点.js服务器输入了一个回调 URL 以进行 httpost 操作。单击"发送"时,我无法获取要传递给我的服务器的选择列表的值。

尝试在卡片上包含一个正文字符串,但后来我得到了

语法错误:JSON 中位置 0 处出现意外的标记 #。

当我在没有正文的情况下发送时,它会与我的服务器通信,但我无法获取值。我记录了请求,但无处可去。

下面是适用于 Outlook 的一个 office365 连接器卡的代码示例的一部分。在卡片引用中写明 httppost 操作可以包含一个正文。因此,我假设这个身体将使用我定义的值发送到我的服务器。但是当我包含正文时,我收到上述错误,并且操作无法完成,因为它没有正文。

{
        "@type": "ActionCard",
        "name": "Move",
        "inputs": [
            {
                "@type": "MultichoiceInput",
                "id": "move",
                "title": "Pick a list",
                "choices": [
                    { "display": "List 1", "value": 500 },
                    { "display": "List 2", "value": 600 }
                ]
            }
        ],
        "actions": [
            {
              "@type": "HttpPOST",
              "name": "Save",
              "target": "https://aptdevserver.westeurope.cloudapp.azure.com/chat/messages/create",
              "body": "value",
              "bodyContentType": "application/json"
            }
        ]
    }

您没有告诉 Outlook 要发送哪个值。你需要告诉它你想做一个字符串替换,否则你就会在POST的正文中乱value字符串:

"body": "{ "move": "{{move.value}}" }"

使用您的完整示例:

{
  "@type": "ActionCard",
  "name": "Move",
  "inputs": [
    {
      "@type": "MultichoiceInput",
      "id": "move",
      "title": "Pick a list",
      "choices": [
        { "display": "List 1", "value": 500 },
        { "display": "List 2", "value": 600 }
      ]
    }
  ],
  "actions": [
    {
      "@type": "HttpPOST",
      "name": "Save",
      "target":
        "https://aptdevserver.westeurope.cloudapp.azure.com/chat/messages/create",
      "body": "{ "move": "{{move.value}}" }",
      "bodyContentType": "application/json"
    }
  ]
}

最新更新