Microsoft Teams 中私人消息的传入 Webhook

2024-06-19

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

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

据我所知,MSFT Teams 不可能做到这一点:https://dev.outlook.com/Connectors/Reference https://dev.outlook.com/Connectors/Reference

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

提前致谢 :)

[EDITED]用于通过 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 打包到令牌中,该令牌稍后将用作 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 https://blog.somecreativity.com/2016/11/04/send-a-notification-to-a-microsoft-teams-user-from-an-app/。如果您以前从未编写过 Microsoft Teams 机器人,请查看我的另一篇博文,其中包含分步说明here https://blog.somecreativity.com/2016/11/03/creating-a-bot-for-microsoft-teams/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Microsoft Teams 中私人消息的传入 Webhook 的相关文章

随机推荐

  • 如何以编程方式在 Android 中查找平板电脑或手机?

    我的情况是 手机和平板电脑的逻辑是相同的 但布局上略有不同 我尝试使用以下代码 public static boolean findoutDeviceType Context context return context getResour
  • 使用 jQuery / .data() 避免内存泄漏

    我正在使用 jQuery 动态创建 HTML 元素 现在需要针对它们存储 JavaScript 数据 但是 我现在担心内存泄漏 因为我实际上从未在对象上调用 删除 我 append 和 detach 它们 但从不 remove jQuery
  • jQuery,获取一个元素的宽度并应用于另一个元素

    有没有一种方法可以获取一个元素的宽度 container例如并将其应用到另一个 item例如 我的布局是响应式的 因此为什么我不能直接给出 item固定宽度值 像这样 item width container width Demo gt h
  • 对浮点数求和的最佳 OpenCL 2 内核是什么?

    C 17引入了许多新算法来支持并行执行 特别是标准 减少 http en cppreference com w cpp algorithm reduce是一个并行版本std 累积 http en cppreference com w cpp
  • 配置tomat的server.xml文件并自动生成mod_jk.conf

    我在用apache 2 2 15 and tomcat6 6 0 24 on CentOS 6 4并希望使用 tomcat 服务器的功能 通过添加以下内容自动生成 mod jk conf 文件
  • 使用AT命令发送消息时CMS Error 500错误

    我正在尝试在超级终端使用 AT 命令发送短信 我使用的是华为E1552 我收到此错误 CMS ERROR 500 我需要帮助找出导致此错误的原因 谢谢 这是一个旧线程 但为了将来的参考 我想这会很有用 CMS 错误 500基本上是指未知错误
  • 如何将 数组传递给存储过程

    我有一个清单索赔数据在 C 中 它有三个项目 日期 类型和描述 其中可以有多行 如下所示 索赔数据 Date Type Description 01 02 2012 Medical Its a medical 05 02 2013 Thef
  • 如何在 Pandas Python 中按 id 对行进行排名

    我有一个像这样的数据框 id points1 points2 1 44 53 1 76 34 1 63 66 2 23 34 2 44 56 我想要这样的输出 id points1 points2 points1 rank points2
  • 在 TestNG 中运行多个类

    我正在尝试自动化一个场景 其中我想登录一次应用程序 然后进行操作而无需再次重新登录 考虑一下 我有在特定类的 BeforeSuite 方法中登录应用程序的代码 public class TestNGClass1 public static
  • 不允许对IsolatedStorageFile Stream 进行操作

    创建文件后打开该文件时出现错误 using var myFileStore IsolatedStorageFile GetUserStoreForApplication myFileStore CreateFile DateTime Now
  • InvalidOperationException:无法解析类型“Microsoft.AspNetCore.Http.IHttpContextAccessor”的服务

    我开始将我的 asp net core RC1 项目转换为 RC2 并面临现在的问题IHttpContextAccessor没有解决 为了简单起见 我使用 Visual Studio 模板创建了新的 ASP NET RC2 项目ASP NE
  • 无法填充名为“status”的数组

    我正在尝试做一些非常简单的事情 在 Javascript 中初始化一个数组 而且它在 Google Chrome 中不起作用 这是代码 status for i 0 i lt 8 i status i false alert status
  • 由于键更改而尝试插入时外键约束失败

    我有一个 Content 对象 它引用多对多关系中的一组 Tag 对象 作为持久化新内容对象的一部分 我在 PostgreSQL 中查看标签是否已存在 如果存在 则将对其的引用添加到内容对象并尝试保存内容对象 我遇到的问题是 当我这样做时
  • 按空值和非空值分组

    我有一个包含用户 facebook ID 的表 我必须报告谁在使用 facebook 或不使用 对于 facebook 用户 数据行包含一个数字 否则包含 null 我的结果必须是这样的 NbUsers Facebook 1000 no 5
  • benchmem 的输出

    使用内存分析器运行基准测试时 我看到以下输出 SomeFunc 100 17768876 ns op 111 B op 0 allocs op 我不明白输出 0 allocs op 但分配了 111 B 知道这意味着什么吗 我的函数是否在堆
  • Webpack 缺少 CommonsChunk 和 extract-text-webpack-plugin 模块

    我正在跟进Maxime Fabre 的 Webpack 教程 https blog madewithlove be post webpack your bags 我正在尝试获得一个非常简单的 webpack 包 其中包含 1 个入口点和 2
  • SSIS 包卡在“已创建执行”状态

    我最近对我的一个 SSIS 项目部署了更新 自从该项目失败后 它就按计划运行了 SSIS 包似乎停留在 已创建执行 状态 报告中没有任何消息来解释这个问题 我尝试重新部署该项目 但结果保持不变 我最终不得不恢复到早期版本的部署以使系统重新上
  • jQuery UI sortable 和 contenteditable=true 不能一起工作

    我正在创建一个列表并希望使其项目可排序和可编辑 所以我这样做 ul li span A span li li span B span li li span C span li ul ul list sortable http jsfiddl
  • 如何在 R 中为传单中的数值变量设置不对称颜色渐变

    我想让传单调色板以零为中心 红白绿发散 我已经尝试过中所说的这个帖子 https stackoverflow com questions 29262824 r center color palette on 0 当我尝试手动创建颜色时 我得
  • Microsoft Teams 中私人消息的传入 Webhook

    我可以从 C 应用程序或 PS 脚本创建传入 Webhook 将 JSON 消息发送到 MSFT 文档所解释的通道 但是 我想使用传入的 webhook 将 JSON 消息从我的应用程序发送到用户 作为私人消息 就像 Slack 允许的那样