分享 统一渠道通知系统 pushconfig.com, 任意切换发送通知至钉钉, 飞书, 邮件的工具

jicheng1014 · 2021年08月25日 · 最后由 iamtomas 回复于 2022年03月17日 · 783 次阅读

这段时间由于种种原因,公司要求 IM 从钉钉 切换到飞书

感觉飞书文档啥的确实比钉钉好用,但是由于之前开发的系统,大量的嵌入了钉钉机器人,导致迁移起来非常痛苦,

于是想寻找一下市场上是否有种产品能通用的发送 钉钉 或者 飞书的,之后惊奇的发现居然没有这种产品

程序员的需求程序员满足,

我们在 https 证书过期通知 www.sslguala.com 的基础上,搞出了 通用推送通知系统 pushconfig www.pushconfig.com

pushconfig 作用

开发人员可以用统一的地址,统一的格式,将信息推送到 pushconfig, 之后可以在 pushconfig 上绑定各种通知渠道

下图是 pushconfig.com 的工作流程

pushconfig.com 工作流程

产品特点

  • 统一的发送地址,统一的参数格式
  • 支持国内常见 通知渠道:钉钉 飞书 企业微信 bark email webhook(其实就是 sslguala.com 支持的通知渠道)
  • 可以先发送内容,再决定是否转发到某个接收频道
  • 支持一条内容发送多个接收频道
  • 若想增强转发的内容,可以修改官方的转发模板(模板采用 liquid 语法)

具体说明

可以参见 www.pushconfig.com 使用说明

技术栈

  • 前端 vue3.2, element plus, tailwindcss2
  • 后端 rails 6.1

公司已同意日后修改掉部分公司专用服务器代码后开源

公司其他常用工具类产品

欢迎大家试用,有问题或建议欢迎评论交流

支持开原

ciscolive 回复

会尽快推出 docker 的开源版本

我正在做和您类似的事!模版用的也是 liquid 语法,但是发送消息中如果是数组类型,如何生成想要的数组格式呢?(个人认为得改动 liquid 语法)

举个例子

data = { :users => [{:id=>1},{:id=>2}] }
payload = {users: "{% for user in users %} {{ user.id }} {% endfor %}" }

@template = Liquid::Template.parse(payload.to_json)
@payload = @template.render(data.deep_stringify_keys)

JSON.parse(@payload) # => {"users"=>" 1  2 "}

可以看到最后输出是 {"users"=>" 1 2 "} ,如何返回 {"users"=>[1,2]} 这种格式

上边用的 gem 来自 https://github.com/Shopify/liquid

需要 登录 后方可回复, 如果你还没有账号请 注册新账号