0

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

我已经创建了卡片和 webhook,并为我的 node.js 服务器输入了一个回调 URL 以进行 httpost 操作。单击发送时,我无法将选择列表的值传递给我的服务器。

我尝试在卡片上包含一条身体线,但后来我得到了

SyntaxError: 位置 0 处 JSON 中的意外标记 #。

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

下面是用于 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"
            }
        ]
    }
4

1 回答 1

1

您没有告诉 Outlook 您要发送哪个值。您需要告诉它您想要进行字符串替换,否则您将在您的正文中发送字符串:valuePOST

"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"
    }
  ]
}
于 2018-02-05T22:33:26.980 回答