microsoft-graph-api - 传出 Webhook 响应消息的格式是什么?
问题描述
我在 MS Teams 中创建了一个传出 webhook。在提及传出 webhook 中指定的名称时,它将成功地在我的应用程序中引发 API 调用 - 一切都很好。
根据文档,我的应用程序需要使用响应消息响应该请求。但我绝对找不到此回复中接受的格式的任何文档。
我能找到的唯一参考是这个: https ://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-outgoing-webhook
不幸的是,它没有详细说明此类消息的外观。它仅给出了一个可以接受的示例:
{
"type": "message",
"text": "This is a reply!"
}
然而,我不想用简单的消息来回应,而是更愿意用更丰富的格式来回应,比如卡片,或者 - 在某些情况下是反应而不是消息。
那可能吗?是否有任何文件,还有哪些其他回应是可以接受的?除了可以返回的“消息”之外,还有其他类型吗?
解决方案
好的,这是为团队处理事情的一种快速而肮脏的方式。出于某种原因,这并没有很清楚地记录下来,但是团队需要将“卡片”创建为附件,而不是直接获得响应。
我所做的是首先捕获存储卡所需的样板:
string TeamsAdaptiveCardBoilerplate =
@"
{
""type"":""message"",
""attachments"":[
{
""contentType"":""application/vnd.microsoft.card.adaptive"",
""contentUrl"":null,
""content"":{
""$schema"":""http://adaptivecards.io/schemas/adaptive-card.json"",
""type"":""AdaptiveCard"",
""version"":""1.2"",
""body"":[
@@BODY@@
]
}
}
]
}
";
然后,我构建正文(通常,这不是静态文本,但它可以很好地作为示例)
string AdaptiveCardBody =
@"
{
""type"": ""TextBlock"",
""text"": ""Here is a ninja cat""
},
{
""type"": ""Image"",
""url"": ""http://adaptivecards.io/content/cats/1.png""
}
";
接下来我简单地将占位符换成实体:
var jsonPayload1 = TeamsAdaptiveCardBoilerplate.Replace("@@BODY@@", AdaptiveCardBody);
最后,返回组装好的有效载荷(转换回一个对象,以便设置正确的响应标头):
var payload1 = JsonConvert.DeserializeObject(jsonPayload1);
return (ActionResult)new OkObjectResult(payload1);
从那里,你应该很高兴。
笔记:
为方便起见,整个“内容”(而不是“正文”)块是您复制/粘贴到 Adaptivecards.io 设计器中的内容。如果它对您很重要,您可以重构上面的内容以反映现实。
推荐阅读
- python - 在没有库的情况下在 Python 中“发布密钥”?
- javascript - 如何将前端值传递给 JavaScript 计数器?
- algorithm - 求解具有多个 T(n)s 的递归关系
- css - asp.net Core MVC中如何填充Body的占位符?
- ionic-framework - 如何让我的 ion select 选择并显示国家代码?
- r - 需要帮助获取数据框中列的平均值
- ffmpeg - 为什么使用 ffmpeg 提取 gpu 帧和 CPU 帧提取有区别?
- javascript - Is Node.js required by Cypress in order to get full functionality?
- selenium - 如何将句柄切换到具有确认窗口的弹出窗口
- c - printf 函数在 C 编程中如何工作?