gpt4 book ai didi

c# - Microsoft Teams 中私有(private)消息的传入 Webhook

转载 作者:太空狗 更新时间:2023-10-29 23:12:58 32 4
gpt4 key购买 nike

我可以从 C# 应用程序或 PS 脚本创建一个传入的 webhook,将 JSON 消息发送到 MSFT 文档解释的 channel 。

但是,我想使用我的传入 webhook 从我的应用程序向用户发送 JSON 消息(作为私有(private)消息),就像 Slack 允许的那样。

据我所知,这对于 MSFT Teams 是不可能的:https://dev.outlook.com/Connectors/Reference

但也许您知道任何解决方法或类似的方法来修复它。

提前致谢:)

[已编辑]用于通过 C# 应用将消息发布到 MSFT Team 的代码:

//Post a message using simple strings
public void PostMessage(string text, string title)
{
Payload payload = new Payload()
{
Title = title
Text = test
};
PostMessage(payload);
}

//Post a message using a Payload object
public async void PostMessage(Payload payload)
{
string payloadJson = JsonConvert.SerializeObject(payload);
var content = new StringContent(payloadJson);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var client = new HttpClient();
uri = new Uri(GeneralConstants.TeamsURI);
await client.PostAsync(uri, content);
}

最佳答案

此时实现您的目标的最佳方法是创建一个机器人并实现它以公开一个 webhook 端点,您的应用或服务可以将其发布到该端点,并让机器人将这些消息发布到与用户的聊天中。

首先根据您的机器人收到的传入事件捕获成功发布到机器人与用户的对话所需的信息。

var callBackInfo = new CallbackInfo() 
{
ConversationId = activity.Conversation.Id,
ServiceUrl = activity.ServiceUrl
};

然后将 callBackInfo 打包到一个 token 中,稍后将用作您的 webhook 的参数。

 var token = Convert.ToBase64String(
Encoding.Default.GetBytes(
JsonConvert.SerializeObject(callBackInfo)));

var webhookUrl = host + "/v1/hook/" + token;

最后,实现 webhook 处理程序来解压 callBackInfo:

var jsonString = Encoding.Default.GetString(Convert.FromBase64String(token));
var callbackInfo = JsonConvert.DeserializeObject<CallbackInfo>(jsonString);

并发布到机器人与用户的对话中:

ConnectorClient connector = new ConnectorClient(new Uri(callbackInfo.ServiceUrl));

var newMessage = Activity.CreateMessageActivity();
newMessage.Type = ActivityTypes.Message;
newMessage.Conversation = new ConversationAccount(id: callbackInfo.ConversationId);
newMessage.TextFormat = "xml";
newMessage.Text = message.Text;

await connector.Conversations.SendToConversationAsync(newMessage as Activity);

看看我关于这个主题的博文 here .如果您以前从未编写过 Microsoft Teams 机器人,请查看我的另一篇博客文章,其中包含分步说明 here .

关于c# - Microsoft Teams 中私有(private)消息的传入 Webhook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40409222/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com