Azure DevOps Server:使用服务挂钩Web Hooks集成企业微信

Contents

1. 场景描述

2. 实现方案

  • 2.1 企业微信群机器人
  • 2.2 DevOps 服务挂钩Web Hooks

1. 场景描述

由于企业内部员工在广泛使用腾讯”企业微信“发送实时消息,作为生产问题管理员,希望生产问题的状态出现变化时(例如新建或已解决时),对应用户可以在企业微信中得到实时通知。

2. 实现方案

2.1 企业微信群机器人

在企业微信的开放技术中,微信群机器人用于集成第三方系统,自动发送消息到企业微信群的方法。所谓机器人,实际上是企业微信的一个开放接口,可以接受外部系统发送过来的消息,并将接受到的消息展现在企业微信群中。我们可以通过下面的方式创建企业微信群机器人:

Azure DevOps Server:使用服务挂钩Web Hooks集成企业微信_第1张图片

Azure DevOps Server:使用服务挂钩Web Hooks集成企业微信_第2张图片

当参考上面的方式新建了一个企业微信群机器人后,我们可以看到这个机器人对应的api和专有的key(注意要对key保密,否则别人就能利用这个可以冒充你发送消息),并且可以做一些发送消息的测试:

Azure DevOps Server:使用服务挂钩Web Hooks集成企业微信_第3张图片

例如,我们将上面的接口和参数配置到postman中,就可以将信息发送到企业微信群中,如下图:

Azure DevOps Server:使用服务挂钩Web Hooks集成企业微信_第4张图片

下面是发送文字和卡片信息的两个示例,供大家参考:

  • 文字消息
{
        "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"
           }
        ]
    }
}

发送成功后,我们可以看到下图中类似的消息截图:

Azure DevOps Server:使用服务挂钩Web Hooks集成企业微信_第5张图片

2.2 DevOps 服务挂钩Web Hooks

Azure DevOps Server 有非常完善而且强大的服务器挂钩功能,可以在多种事件(工作项变更、代码提交、流水线运行等)Events发生时,将对应的数据通过服务挂钩的方式发,自动送到第三方系统(如下图)。

Azure DevOps Server:使用服务挂钩Web Hooks集成企业微信_第6张图片

在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 张洪君Azure DevOps Server:使用服务挂钩Web Hooks集成企业微信_第7张图片

你可能感兴趣的:(java,python,大数据,linux,人工智能)