Coup de Grace

基于云函数写一个钉钉提醒机器人

标题噱头起大了..真羞耻.

本篇可以参考我后来写的fission相关来阅读.

最近钉钉3.4.0的changelog里悄然出现了支持webhook的聊天机器人的字样.

那么我们已知它会支持Gitalb,Trello等hook,很简单设置一些必要的内容.

然后观察下面的自定义机器人部分,正好公司目前行政定期都会发一些提醒类的内容.

在同事的提醒下姑且为人力节省做一些贡献~


顺道通过云原生内容带同事理解一下Serverless的思想.

基础知识准备:


创建机器人

钉钉群内->点击按钮->添加机器人->自定义机器人->复制hook地址

Leancloud内创建云函数

理解云函数的内容这里就不赘述了,大家查阅上方的文档.

当然建立项目手动定义云函数与调用云函数也ok

最差使用crontab运行脚本在自己机器上也能达到目的.

优点就是轻快.

我们只负责部署函数,不关心runtime.部署函数后稍加配置路由规则即可轻易完成数据服务.

创建项目->控制台->云引擎->部署->在线编辑-> 创建函数->如下填充->部署->调用(测试)

填充云函数名称doueat与方法体.

var r = require('request');
var alertJson = {
    "msgtype": "text",
    "text": {
        "content": "晚上加班用餐请报名"
    },
    "at": {
        "isAtAll": true
    }
};

r({
    method: 'POST',
    uri: 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx',
    headers: {
        "content-type": "application/json"
    },
    json: alertJson
},
function(error, response, body) {
    if (error) {
      return console.error('发送请求[doueat]错误:', error);
    }
    console.log('发送请求[doueat]成功:', body);    
});

定时调用

云引擎->定时任务->添加任务

下拉选择与填充即可完成定时任务创建.

例如我们在下午三点询问每天晚餐大家的报名情况.

0 0 15 ? * MON-FRI


我司实例


done.