Microsoft graph api 传出Webhook响应消息的格式是什么?

Microsoft graph api 传出Webhook响应消息的格式是什么?,microsoft-graph-api,microsoft-teams,Microsoft Graph Api,Microsoft Teams,我已经在MS团队中创建了一个即将发布的webhook。在提到即将发布的webhook中指定的名称时,它将成功地在我的应用程序中引发API调用—一切都很好 根据文档,我的应用程序需要用响应消息响应该请求。但我绝对找不到任何文件的格式,是接受在这个回应 我能找到的唯一参考资料是: 不幸的是,它没有详细说明这样的信息可能是什么样子。它仅给出了一个可接受的示例: { "type": "message", "text": &qu

我已经在MS团队中创建了一个即将发布的webhook。在提到即将发布的webhook中指定的名称时,它将成功地在我的应用程序中引发API调用—一切都很好

根据文档,我的应用程序需要用响应消息响应该请求。但我绝对找不到任何文件的格式,是接受在这个回应

我能找到的唯一参考资料是:

不幸的是,它没有详细说明这样的信息可能是什么样子。它仅给出了一个可接受的示例:

{
    "type": "message",
    "text": "This is a reply!"
}
然而,我不想用一条简单的信息来回应,而是更愿意用一些更丰富的格式,比如卡片或——在某些情况下,是一种反应而不是一条信息


可能吗?是否有任何文件,有哪些其他回复是可以接受的?除了“message”之外,还有其他类型可以返回吗?

您可以试试这个示例json
{“$schema”:“adaptivecards.io/schemas/AdaptiveCard.json”,“type”:“AdaptiveCard”,“version”:“1.2”,“body”:[{“type”:“Image”,“url”:“c.s-microsoft.com/en-us/CMSImages/…”,{“type”:“TextBlock”,“text”:“Adaptive Card的示例图像…”,“wrap”:true}]}

好的,这里有一种快速而肮脏的方法来为团队处理事情。由于某些原因,这一点没有很清楚的记录,但团队需要的是将“卡片”创建为附件,而不是直接获得响应

我所做的是先捕获存储卡所需的样板文件:

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@@
                ]
            }
        }
    ]
}
";
然后,我构建主体(通常,这不是静态文本,但它可以作为一个示例)

接下来,我简单地将占位符与真实实体交换:

var jsonPayload1 = TeamsAdaptiveCardBoilerplate.Replace("@@BODY@@", AdaptiveCardBody); 
最后,返回组装好的负载(转换回一个对象,以便设置正确的响应头):

从那以后,你就可以出发了

注:
为方便起见,“内容”(而非“正文”)的全部内容块是您要复制/粘贴到adaptivecards.io设计器中的内容。如果对您很重要,您可以重构上述内容以反映现实情况。

请参阅示例。如果您仍有疑问,请告知我们。@Manish MSFT我与OP有相同的问题。我在您的示例项目中没有发现不同的响应类型。谢谢u@NicoSalvador:您可以找到不同的响应类型。嘿,不会有类似json的示例吗?不来自.net,也不知道json序列化及其框架是如何工作的,这使得很难理解代码示例。@Manish MSFT目前没有任何json示例。@MatthiasHuttarAn outgoing webhook使用一个简单的两元素文档(如OP问题)进行响应,效果很好,但此答案中的响应显示为
对不起,您的请求在团队中遇到了问题。
var jsonPayload1 = TeamsAdaptiveCardBoilerplate.Replace("@@BODY@@", AdaptiveCardBody); 
var payload1 = JsonConvert.DeserializeObject(jsonPayload1);
return (ActionResult)new OkObjectResult(payload1);