zoukankan      html  css  js  c++  java
  • 钉钉outgoing机器人小项目开发

    最近公司有个小项目,关于总部人员每天都要读书,需要想个方案对每个人的读书的情况做统计。经过几次考虑,然后看了下钉钉的官方文档,感觉钉钉的outgoing机器人挺适合这个项目的,于是就开始了。

    1.首先需要获得钉钉的管理员身份,这个需要自己企业群的总管理员进行设置。获取到管理员身份后,就可以登陆到开发者后台了:

    钉钉开放平台地址:https://ding-doc.dingtalk.com/

     登录后,就可以在应用开发-机器人 版块中添加新的机器人了:

     这里面有很多项内容,挨个填写就好了,最重要的有这两个,出口IP和消息接收地址,消息接收地址就是钉钉将数据返回到的地址。

    建好机器人后,可以进行调试,会进入一个钉钉测试群,不过我不建议进测试群,实测在测试群中,返回的数据中没有发送者userid和corpid,这个问题困扰了我很久,最后不得已寻找钉钉官方来寻求解决。还好钉钉官方很给力,反馈很迅速,及时解决了这个问题,解决方法就是机器人需要上线后,再创建一个新的内部群,然后将机器人添加进来就可以了,返回的数据中就会有这两项数据了。

     

     目前来说,创建机器人的任务就完成了,接下来就是接收到数据进行下一步开发了。

    2.上一步填写的消息接收地址派上用场了,当你@机器人并对他说话后,在你的后台就可以接收到钉钉返回的数据了,我的后台用的PHP,可以用

    $file_contents = json_decode(file_get_contents('php://input'), true);来接收到http body中的数据。
    然后通过:
    $webhook = "https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    $data = array('msgtype' => 'text', 'text' => array('content' => $file_contents ));
    $data_string = json_encode($data);
    $result = request_by_curl($webhook, $data_string);
     
    就可以看到机器人将返回的数据展示了出来,如下图:(access_token可以查看官方文档,里面有详细的方法获取)

     这里我主要用到的是userid和text中的content,有了userid就可以通过钉钉服务端api获取到员工个人信息以及部门信息,然后我就将这些数据以及content通过后台存入数据库,这部分代码就不展示了,就是普通的php入库。目前任务已经完成了一大半了。

    3.接下来的任务就是每天将统计结果发送到群里,我用的是link方式,具体方法在官方文档中都有,我只截一下图展示下:

    //发送link消息
    function sendLinkMsg($text, $title, $picUrl, $messageUrl)
    {
        $webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        $data = array(
            'msgtype' => 'link',
            'link' => array(
                'text' => $text,
                'title' => $title,
                'picUrl' => $picUrl,
                'messageUrl' => $messageUrl,
            )
        );
        $data_string = json_encode($data);
        $result = request_by_curl($webhook, $data_string);
        echo $result;
    }
    我单独写了一个方法发送消息,然后调用调用方法就可以在群里发送一个link类型的消息了;
    sendLinkMsg("包含每个部门的已交数量、未交数量、提交比率","今日读书汇报","http://www.xxxxx.cn/ding_read/web/img/urlimg.jpg","http://www.xxxxx.cn/ding_read/web/main.html");

     目前项目就完成了,不算很麻烦,只要将钉钉outgoing机器人的流程走通,开发起来会很顺手。目前钉钉机器人可能官方还在不断地完善中,以后很可能会更加方便。

    ps:最后放几个效果图,大家可以参考一下,这个机器人用起来还是肥肠方便滴~~hia hia hia~

     

     

  • 相关阅读:
    Oracle--数据增删改
    Oracle--约束
    Oracle--常用数据类型、创建表
    Oracle基础入门--(用户、角色、权限)
    Oracle基础入门--(数据库、数据库实例、表空间)
    jQuery中的表单验证
    js 判断微信浏览器
    VUE 之 webpack 封装方法例子
    原创自己写的方法,获取url上的参数,返回一个对象
    axios拦截器配合element ui实现http请求的全局加载
  • 原文地址:https://www.cnblogs.com/weixiaofantasy/p/12179495.html
Copyright © 2011-2022 走看看