首页 > 解决方案 > 从 Controller 向 Microsoft Teams 发送消息

问题描述

我正在尝试将一些消息从我的 API(内置 .NET Core)发送到团队频道。根据文档,我需要使用这段代码,但我不知道如何创建authProvider对象。

Grenter code hereaphServiceClient graphClient = new GraphServiceClient( authProvider );

var chatMessage = new ChatMessage {
    Body = new ItemBody {
        Content = "Hello World"
    }
};

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

我一直在阅读文档,但我不明白我必须做什么。

这是我的控制器

[HttpGet]
[Route("SendMessage")]
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(string))]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public async Task<IActionResult> SendMessageToTeams(string message) {
    try {
        GraphServiceClient graphClient = new GraphServiceClient(authProvider);
        var chatMessage = new ChatMessage {
            Body = new ItemBody {
                Content = "Hello World"
            }
        };
        await graphClient.Teams["xxx"].Channels["xxx"].Messages
                         .Request()
                         .AddAsync(chatMessage);
        return Ok();
    }
    catch (Exception ex) {
        return BadRequest();
    }
}

你能帮我解决这个问题吗?

谢谢。

标签: c#.net-coremicrosoft-teamsmicrosoft-graph-teams

解决方案


实际上有很多方法可以做到这一点,选择哪种方法取决于您更广泛的应用程序要求。但是,对于向频道发送消息的最简单方法,我建议查看 Incoming Webhooks - 在https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/中查看更多信息操作方法/添加传入 webhook


推荐阅读