2019-8-31-dotnet-core-集成到-Mattermost-聊天工具
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
dotnet core 集成到 Mattermost 聊天工具
|
lindexi
|
2019-08-31 16:55:58 +0800
|
2019-05-17 08:45:14 +0800
|
dotnet
|
在找了很久的团队交流工具,发现了 Mattermost 最好用,但是还需要做一些定制化的功能,于是就找到了 Mattermost 插件开发,还找到了如何自己写服务集成到 Mattermost 里面
本文告诉大家,通过写一个 ASP .NET Core 程序集成到 Mattermost 里面,在里面添加很多有趣的功能
在内网通过 Docker 部署 Mattermost 十分简单,但是也许会遇到 Docker 的坑,这些本文就不告诉大家了,官方有详细的文档
在部署完成之后,在本地启动 Mattermost 连接上了服务器,可以开始开发自己的定制服务了
首先创建一个测试使用的公共频道,我创建了 qeegearbejaidejereyean 频道,当然这个命名是随意输入的
然后点击打开集成页面
在这里选择引入 Webhook 的方式
点击添加钩子
输入一个标题和选择频道
现在就可以看到一个链接了
我的链接是 http://127.0.0.1:8065/hooks/xjkyn7ks1pn7xeho1f5ifxqhxh 请将本文下面代码用到的这个链接替换为你自己的
新建一个 ASP .NET Core 程序,选择 API 程序
然后创建一个控制器,里面添加一个 Foo 方法,请看代码
[Route("api/[controller]")]
[ApiController]
public class MattermostController : ControllerBase
{
[HttpGet("Foo")]
public void Foo()
{
}
}
在 Foo 里面添加一些代码,发送字符串需要封装一个 json 发出去,这个json的格式非常简单
{"text": "需要发送的内容"}
通过 Post 的方式发送出去,发送的链接就是刚才记下的 http://127.0.0.1:8065/hooks/xjkyn7ks1pn7xeho1f5ifxqhxh 链接,请将这个链接替换为你自己的
[HttpGet("Foo")]
public void Foo()
{
var httpClient = new HttpClient();
StringContent content = new StringContent("{\"text\": \"林德熙是逗比\"}",Encoding.UTF8, "application/json");
httpClient.PostAsync("http://127.0.0.1:8065/hooks/xjkyn7ks1pn7xeho1f5ifxqhxh", content);
}
此时运行代码,在 Foo 方法可以在访问的时候发送 林德熙是逗比 到输入的链接里面,在 Mattermost 通过这个链接将信息显示
通过访问http://localhost:51559/api/Mattermost/Foo 触发 Foo 方法,在 Foo 方法里面发送数据
访问之后可以看到刚才创建的频道显示了信息
当然一个服务肯定不是这么简单,例如可以用来集成自己的 gogs 或自己的待办或催小伙伴吃饭
代码放在 github
2019-8-31-dotnet-core-集成到-Mattermost-聊天工具的更多相关文章
- dotnet core 集成到 Mattermost 聊天工具
在找了很久的团队交流工具,发现了 Mattermost 最好用,但是还需要做一些定制化的功能,于是就找到了 Mattermost 插件开发,还找到了如何自己写服务集成到 Mattermost 里面 本 ...
- 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)
背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...
- Dapr Pub/Sub 集成 RabbitMQ 、Golang、Java、DotNet Core
前置条件: <Dapr运用> <Dapr 运用之 Java gRPC 调用篇> <Dapr 运用之集成 Asp.Net Core Grpc 调用篇> 搭建 Rabb ...
- DotNet Core 1.0 集成 CentOS 开发与运行环境部署
一. DotNet Core 1.0 开发环境部署 操作系统安装 我们使用CentOS 7.2.1511版本. 安装libunwind库 执行:sudo yum install libunwi ...
- dotnet core 之 gRPC
dotnet core gRPC 原文在本人公众号中,欢迎关注我,时不时的会分享一些心得 HTTP和RPC是现代微服务架构中很常用的数据传输方式,两者有很多相似之处,但是又有很大的不同.HTTP是一种 ...
- spring cloud+dotnet core搭建微服务架构:配置中心(四)
前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...
- dotnet core高吞吐Http api服务组件FastHttpApi
简介 是dotNet core下基于Beetlex实现的一个高度精简化和高吞吐的HTTP API服务开源组件,它并没有完全实现HTTP SERVER的所有功能,而是只实现了在APP和WEB中提供数据服 ...
- dotnet core的下载地址 以及sdk和runtime的 version 简单说明
1. dotnet core 2.1 的下载地址 https://dotnet.microsoft.com/download/dotnet-core/2.1 2. dotnet core 2.2 的下 ...
- 【Step By Step】将Dotnet Core部署到Docker上
本教程的前提是,你已经在Linux服务器上已经成功的安装了Docker,我会大概介绍在此过程中用到的Docker命令,并不会介绍所有的Docker命令(因为我也不会). 一.在Docker中运行Dot ...
- 国产中标麒麟Linux部署dotnet core 环境并运行项目 (二) 部署运行控制台项目
背景 在上一篇文章安装dotnet core,已经安装好dotnet core了.之前只是安装成功了dotnet, 输入dotnet --info,可以确认安装成功了,但是在运行代码时,还是报错了,本 ...
随机推荐
- java上传大文件(局域网环境)
文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用 ...
- 从MapGIS K9到MapGIS 10到MapGIS 10.3 Server
- 2017ICPC南宁补题
https://www.cnblogs.com/2462478392Lee/p/11650548.html https://www.cnblogs.com/2462478392Lee/p/116501 ...
- [CSP-S模拟测试]:随(快速幂+数学)
题目描述 给出$n$个正整数$a_1,a_2...a_n$和一个质数mod.一个变量$x$初始为$1$.进行$m$次操作.每次在$n$个数中随机选一个$a_i$,然后$x=x\times a_i$.问 ...
- 【转】DataRow复制一行到另一个DataTable
源地址:http://www.cnblogs.com/pains/archive/2007/11/22/969003.html 下面两个方法是DataRow复制一行到另一个DataTable的, ...
- Retrofit RestAdapter 配置说明
RestAdapter.Builder builder = new RestAdapter.Builder(); builder.setEndpoint(ip地址 ...
- iView 实战系列教程(21课时)_3.iView 实战教程之布局篇(一)
Grid布局 先了解一下iview的24栅格布局 清理一下App.vue 然后从iview的color里面获取推荐的背景色 我们先渲染栅格 24列,然后再讲解他是一个什么东西: 栅格外面row包裹的, ...
- 负载均衡环境搭建(nginx和tomcat)
偶然看到博客上一篇负载均衡的文章,学习了一下,此处做下记录 目录 1.环境准备 2.tomcat配置 3.nginx配置 1.环境准备 第一步:java环境 第二步:nginx和pcre源码包 下载链 ...
- 如何让字典保持有序---Python数据结构与算法相关问题与解决技巧
实际案例: 某编程竞赛系统,对参赛选手编程解体进行计时,选手完成题目后,吧该选手解体用时记录到字典中,以便赛后按选手名查询成绩 {'Lilei':(2,43),'HanMei':(5,52),'Jim ...
- day15生成器send方法,递归,匿名函数,max结合匿名工作原理,常用的内置函数
复习 ''' 1.带参装饰器 - 自定义 | wraps def wrap(info) def outer1(func): from functools import wraps @wraps(fun ...