如何从其他应用程序向Microsoft团队发布消息

时间:2019-07-16 05:02:10

标签: microsoft-teams

我正在尝试在桌面应用程序中(使用c#)创建自定义方法,以向Microsoft团队发布消息。 但我仍然不知道要使用哪种工具或服务。 有可能实现吗?如果是,怎么办?

我在Visual Studio中找到了有关Team女士的金块。但它行不通。 如在Visual Studio市场中。我发现的是 https://marketplace.visualstudio.com/items?itemName=ms-vsts.vss-services-teams

但似乎不符合我的要求。

3 个答案:

答案 0 :(得分:7)

您可以按照 3 个步骤向您的频道发送消息通知:

  1. 在您的团队中,右键单击您的频道。并发送 Incoming webhookRight click channel
  2. 安装/配置 webhook,通过提供 webhook 名称。点击创建 Configure Incoming webhook
  • 它会为你创建一个链接,复制链接 enter image description here
  1. 最后一步,在 Power shell 中使用此命令行
curl.exe -H "Content-Type:application/json" -d "{'text':'Servers x is started.'}" https://example.webhook.office.com/webhookb2/4dee1c26-036c-4bd2-af75-eb1abd901d18@3c69a296-d747-4ef3-9cc5-e94ee78db030/IncomingWebhook/87557542b42d8d3b04453c4a606f2b92/b852b3d0-84b6-4d98-a547-ae5f53452235

注意:命令行中的 URL 包含一些伪造的 guid 编号,但您需要将其替换为您从 webhooks 中获取的那个。

您可以在 power shell 中调用此行,也可以将其合并到 c# 中。

现在,当我运行命令时,我在该频道中收到一条消息:

Message Demo


如果您需要删除已添加的挂钩,请单击已配置,然后单击配置。并管理 webhook: Manage Web Hook 并删除 Remove Web Hook

答案 1 :(得分:1)

可以在Connectors的帮助下在团队中发布消息。 按照文档创建传入的Webhook,并使用留言卡发布消息。

答案 2 :(得分:1)

我们在图谱API的帮助下实现了相同的目标

注意:向通道发送消息目前处于测试阶段,但很快将移至图形V1端点。

使用HTTP:

POST https://graph.microsoft.com/beta/teams/{id}/channels/{id}/messages
Content-type: application/json

{
  "body": {
    "content": "Hello World"
  }
}

使用C#:

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var chatMessage = new ChatMessage
{
    Subject = null,
    Body = new ItemBody
    {
        ContentType = BodyType.Html,
        Content = "<attachment id=\"74d20c7f34aa4a7fb74e2b30004247c5\"></attachment>"
    },
    Attachments = new List<ChatMessageAttachment>()
    {
        new ChatMessageAttachment
        {
            Id = "74d20c7f34aa4a7fb74e2b30004247c5",
            ContentType = "application/vnd.microsoft.card.thumbnail",
            ContentUrl = null,
            Content = "{\r\n  \"title\": \"This is an example of posting a card\",\r\n  \"subtitle\": \"<h3>This is the subtitle</h3>\",\r\n  \"text\": \"Here is some body text. <br>\\r\\nAnd a <a href=\\\"http://microsoft.com/\\\">hyperlink</a>. <br>\\r\\nAnd below that is some buttons:\",\r\n  \"buttons\": [\r\n    {\r\n      \"type\": \"messageBack\",\r\n      \"title\": \"Login to FakeBot\",\r\n      \"text\": \"login\",\r\n      \"displayText\": \"login\",\r\n      \"value\": \"login\"\r\n    }\r\n  ]\r\n}",
            Name = null,
            ThumbnailUrl = null
        }
    }
};

await graphClient.Teams["{id}"].Channels["{id}"].Messages
    .Request()
    .AddAsync(chatMessage);

您可能需要查看官方文档以更清楚。这是下面的链接

https://docs.microsoft.com/en-us/graph/api/channel-post-messages?view=graph-rest-beta&tabs=csharp

就我而言,我正在使用Angular并调用端点。

希望它能提供一些想法。