Azure DevOps Server:使用服务挂钩Web Hooks集成企业微信
Contents
1. 场景描述
2. 实现方案
- 2.1 企业微信群机器人
- 2.2 DevOps 服务挂钩Web Hooks
1. 场景描述
由于企业内部员工在广泛使用腾讯”企业微信“发送实时消息,作为生产问题管理员,希望生产问题的状态出现变化时(例如新建或已解决时),对应用户可以在企业微信中得到实时通知。
2. 实现方案
2.1 企业微信群机器人
在企业微信的开放技术中,微信群机器人用于集成第三方系统,自动发送消息到企业微信群的方法。所谓机器人,实际上是企业微信的一个开放接口,可以接受外部系统发送过来的消息,并将接受到的消息展现在企业微信群中。我们可以通过下面的方式创建企业微信群机器人:
当参考上面的方式新建了一个企业微信群机器人后,我们可以看到这个机器人对应的api和专有的key(注意要对key保密,否则别人就能利用这个可以冒充你发送消息),并且可以做一些发送消息的测试:
例如,我们将上面的接口和参数配置到postman中,就可以将信息发送到企业微信群中,如下图:
下面是发送文字和卡片信息的两个示例,供大家参考:
- 文字消息
{ "msgtype": "text", "text": { "content": "简称ADO Server,原名TFS,是微软公司Azure DevOps产品在企业内网部署运行的研发管理平台产品;为信息技术团队提供软件研发过程管理、文档和源代码管理、持续集成和自动部署、质量控制和测试等全过程的功能模块。" } }
- 卡片消息
{ "msgtype": "news", "news": { "articles" : [ { "title" : "Azure DevOps Server", "description" : "简称ADO Server,原名TFS,是微软公司Azure DevOps产品在企业内网部署运行的研发管理平台产品;为信息技术团队提供软件研发过程管理、文档和源代码管理、持续集成和自动部署、质量控制和测试等全过程的功能模块。", "url" : "http://www.cnblogs.com/danzhang", "picurl" : "https://tse2-mm.cn.bing.net/th/id/OIP-C.OXJG75OTVJ2eN2rEouzFfwHaCD?pid=ImgDet&rs=1" } ] } }
2.2 DevOps 服务挂钩Web Hooks
Azure DevOps Server 有非常完善而且强大的服务器挂钩功能,可以在多种事件(工作项变更、代码提交、流水线运行等)Events发生时,将对应的数据通过服务挂钩的方式发,自动送到第三方系统(如下图)。
在Azure DevOps Server的服务挂钩设计中,原生支持多种应用程序,例如Microsoft Teams,Jenkins,HiChat, Slack等;但是非常遗憾,目前它还不支持我们常用的企业微信、钉钉等国产软件。
由于服务挂钩推送的json数据结构与企业微信群机器人的结构不一致,我们不能直接将企业微信群机器人的接口Url直接配置在服务挂钩中,需要我们自定义一个接口程序,用于将服务挂钩发出的json数据转换为企业微信支持的输入结构。例如我们在使用过程中,自己使用C#编写了一个接口(http://my-api-server/api/QyWechatRobot?url=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={wechat-token} ;我们将这个接口配置在DevOps Server的服务挂钩中。如果你在使用专门用于webhook调试和转换的云服务 https://webhook.site/ ,直接使用它的数据转换功能,无需自己开发接口。
完成上面的开放和配置后,我们在企业微信群中,就能收到来自Azure DevOps Server的自动通知。
如果需要,你还可以从微软Azure DevOps Server 的在线文档,查询更多的权威资料,也欢迎通过下面的联系方式与我沟通,相互学习,相互提高!
https://www.cnblogs.com/danzhang
Azure DevOps MVP 张洪君