2 回答
TA贡献1780条经验 获得超5个赞
是的,可以从您的软件/桌面应用程序向 MS 团队发送通知。您可以使用适用于 MS 团队的 Microsoft Graph API 或 MS 团队传入挂钩功能。
我发现使用传入钩子要容易得多。
您可以按照 4 个步骤向您的频道发送消息通知:
在您的团队中,右键单击您的频道。并搜索
Incoming Webhook
.
安装/添加Incoming Webhook
(如果尚未添加)。
Incoming Webhook
通过提供 webhook 名称来配置。单击创建
它将生成一个具有唯一 GUID 的链接,复制该链接
最后一步,在 PowerShell 中使用此命令行
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 唯一 ID 引用,但您需要将其替换为从 Webhooks 获取的引用。
您可以在命令行、PowerShell 或任何其他可以发出发布请求并将其合并到代码中的编程语言中调用此行。在这种情况下,为了回答这个问题,我在 C# 中实现了帖子要求:
using (var httpClient = new HttpClient())
{
using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://example.webhook.office.com/webhookb2/4dee1c26-036c-4bd2-af75-eb1abd901d18@3c69a296-d747-4ef3-9cc5-e94ee78db030/IncomingWebhook/87557542b42d8d3b04453c4a606f2b92/b852b3d0-84b6-4d98-a547-ae5f53452235"))
{
request.Content = new StringContent("{'text':'Servers x is started.'}");
request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
var response = await httpClient.SendAsync(request);
}
}
现在,当我运行命令或 C# 代码时,我会在该频道中收到一条消息:
如果您需要删除已添加的挂钩,请单击“已配置”,然后单击“配置”。并管理 webhook:
并删除
免责声明:我在我的个人博客上写了一篇涵盖该主题的文章。
TA贡献2039条经验 获得超7个赞
我们在图形 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://learn.microsoft.com/en-us/graph/api/channel-post-messages?view=graph-rest-beta&tabs=csharp
就我而言,我使用 Angular 并调用端点。
希望它能提供一些想法。
- 2 回答
- 0 关注
- 155 浏览
添加回答
举报