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


    Contents

    1. 场景描述

    2. 实现方案

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

    1. 场景描述

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

    2. 实现方案

    2.1 企业微信群机器人

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

    image

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

    例如,我们将上面的接口和参数配置到postman中,就可以将信息发送到企业微信群中,如下图:
    image
    下面是发送文字和卡片信息的两个示例,供大家参考:

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

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

    2.2 DevOps 服务挂钩Web Hooks

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

    在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 张洪君
    在这里插入图片描述

  • 相关阅读:
    vue中封装公共方法,全局使用
    element-ui table 最后一行合计,单元格合并
    vuex 进行封装
    vue生命周期
    (转)no terminal library found
    解压
    (转)bash: make: command not found
    (转)linux 批量删除文件命令
    python
    Session
  • 原文地址:https://www.cnblogs.com/danzhang/p/16100723.html
Copyright © 2020-2023  润新知