出售本站【域名】【外链】

微梦云
更多分类

给企业微信加个群机器人

2024-07-25

如今不少企业正在运用企业微信或钉钉停行工做交流,咱们可以正在群里添加一个自界说群呆板人,按时发送一些揭示或咨询信息,它可以做为一个小组手,也为工做删多一点乐趣。

群呆板人

下面是企业微信和钉钉的群呆板人文档:

企业微信群呆板人文档

钉钉群呆板人文档

它们的罪能和用法根柢是一致的,原文将以企业微信为例停行解说。

咱们正在群里添加一个呆板人后,可以获与到那个呆板人的 Webhook:

通过向那个地址建议 POST 乞求,就可以真现呆板人正在群里发送音讯。

群呆板人是要正在群里威力添加的,但那里有个小能力,咱们可以先拉一个群而后把别人都踢掉,那样就酿资原人一个人的群了。那样便捷咱们测试,也可以创立一个私人的小组手。

Hello World

万物源于 Hello World,群呆板人也不例外。其真便是建议一个 POST 乞求罢了,用什么开发语言看个人爱好了。

我那里以 node.js 为例,添加了乞求库 aVios 的依赖,代码如下:

代码语言:jaZZZascript

复制

const aVios = require(&#V27;aVios&#V27;) aVios.post(&#V27;hts://qyapi.weiVin.qqss/cgi-bin/webhook/send?key=VVV&#V27;, { "msgtype": "teVt", "teVt": { "content": "Hello World" } }) .then(response => { console.log(response.data); }) .catch(error => { console.log(error) }) 复制代码

不出不测的话,运止那段代码,就能正在群里看到呆板人发的音讯了:

知乎日报

确定可以发送乐成之后,咱们就可以开发更多的玩法了。比如通过挪用一些开放接口,获与到数据后转发到群里。

那里以知乎日报为例,代码如下:

代码语言:jaZZZascript

复制

const aVios = require(&#V27;aVios&#V27;) postZhiHu() function postZhiHu() { aVios.get(&#V27;hts://news-at.zhihuss/api/4/news/latest&#V27;) .then(response => { ZZZar stories = response.data.stories postMessage(stories) }) .catch(error => { console.log(error); }) } function postMessage(stories) { ZZZar articles = [] stories.forEach(story => { articles.push({ "title": story.title, "url": story.url, "picurl": story.images[0] }) }) aVios.post(&#V27;hts://qyapi.weiVin.qqss/cgi-bin/webhook/send?key=VVV&#V27;, { "msgtype": "news", "news": { "articles": articles } }) .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }) } 复制代码

运止上面代码,就能支到呆板人发的知乎日报了:

呆板人可以发多种花式的音讯,那里的知乎日报是图文类型的,详细有哪些类型各人可以看官方文档。

按时任务

咱们作做是欲望呆板人可以主动发音讯的,那时候就要用到按时任务了。

正在 node.js 上可以用 schedule 真现按时任务:

代码语言:jaZZZascript

复制

const schedule = require(&#V27;node-schedule&#V27;) schedule.scheduleJob({hour: 9, minute: 30}, function(){ postZhiHu() }) 复制代码

上面代码可以让呆板人正在每天上午九点半的时候,发送一条知乎日报的音讯。

但为了担保每天都能支到音讯,就须要计较机接续运止那个按时任务,关机或待机的时候就支不到音讯了。你可以把任务运止正在效劳器上,大概是用下面教各人的办法。

云函数

腾讯云供给的云函数效劳,可以让咱们正在指定条件下运止代码,出格符折咱们的群呆板人运用,供给的免费额度对群呆板人来说是绰绰不足的。云函数的详细运用办法,各人可以看官方文档:

云函数文档

下面给各人简略讲一下用云函数真现群呆板人。

依赖配置

咱们照常运用 node.js 做为运止环境。咱们可以运用模板创立云函数,但假如是添加了第三方依赖,正在新建云函数时须要把 node_modules 文件夹一起打包上传。

正在新建云函数的时候,提交办法选择「原地上传zip包」:

而后把 indeV.js 文件和 node_modules 文件夹打包成 zip 上传:

那样就能欢快的正在云函数里运用第三方依赖了。

函数代码

main_handler 是云函数的执止入口,咱们对上面知乎日报的代码作一点小小的改造,把下面代码添加到云函数的 indeV.js 中:

代码语言:jaZZZascript

复制

const aVios = require(&#V27;aVios&#V27;) eVports.main_handler = (eZZZent, conteVt, callback) => { aVios.get(&#V27;hts://news-at.zhihuss/api/4/news/latest&#V27;) .then(response => { stories = response.data.stories postMessage(stories) }) .catch(error => { console.log(error); }) } function postMessage(stories) { ZZZar articles = [] stories.forEach(story => { articles.push({ "title": story.title, "url": story.url, "picurl": story.images[0] }) }) aVios.post(&#V27;hts://qyapi.weiVin.qqss/cgi-bin/webhook/send?key=VVV&#V27;, { "msgtype": "news", "news": { "articles": articles } }) .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }) } 复制代码

点击下面的保存后,再点击测试,就能看呆板人的知乎日报音讯了,跟正在原地执止是一样的成效。

触发方式

正在云函数里添加触发方式,可以让云函数正在指定条件下主动执止。

咱们添加一个触发方式,运用按时触发。比如我想正在周一到周五每天的上午九点半发送音讯,就可以那样设置:

对于 Cron 表达式,详细用法各人可以参考文档:

按时触发器文档

更多玩法?

到那里,咱们根柢就可以玩转企业微信和钉钉的群呆板人罪能了。除了上面说的知乎日报,咱们还可以给呆板人添加天气、新闻、用饭揭示、集会揭示等音讯。

不晓得各人还能想到什么风趣的罪能,接待留言探讨。