现在很多企业在使用企业微信或钉钉进行工作交流,我们可以在群里添加一个自定义群机器人,定时发送一些提醒或咨询信息,它可以作为一个小组手,也为工作增加一点乐趣。

群机器人

下面是企业微信和钉钉的群机器人文档:

它们的功能和用法基本是一致的,本文将以企业微信为例进行讲解。

我们在群里添加一个机器人后,可以获取到这个机器人的 Webhook:

通过向这个地址发起 POST 请求,就可以实现机器人在群里发送消息。

群机器人是要在群里才能添加的,但这里有个小技巧,我们可以先拉一个群然后把别人都踢掉,这样就变成自己一个人的群了。这样方便我们测试,也可以创建一个私人的小组手。

Hello World

万物源于 Hello World,群机器人也不例外。其实就是发起一个 POST 请求而已,用什么开发语言看个人爱好了。

我这里以 node.js 为例,添加了请求库 axios 的依赖,代码如下:const axios = require('axios')

axios.post('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx', {

"msgtype": "text",

"text": {

"content": "Hello World"

}

})

.then(response => {

console.log(response.data);

})

.catch(error => {

console.log(error)

})

不出意外的话,运行这段代码,就能在群里看到机器人发的消息了:

知乎日报

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

这里以知乎日报为例,代码如下:const axios = require('axios')

postZhiHu()

function postZhiHu(){

axios.get('https://news-at.zhihu.com/api/4/news/latest')

.then(response => {

var stories = response.data.stories

postMessage(stories)

})

.catch(error => {

console.log(error);

})

}

function postMessage(stories){

var articles = []

stories.forEach(story => {

articles.push({

"title": story.title,

"url": story.url,

"picurl": story.images[0]

})

})

axios.post('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx', {

"msgtype": "news",

"news": {

"articles": articles

}

})

.then(response => {

console.log(response.data);

})

.catch(error => {

console.log(error);

})

}

运行上面代码,就能收到机器人发的知乎日报了:

机器人可以发多种样式的消息,这里的知乎日报是图文类型的,具体有哪些类型大家可以看官方文档。

定时任务

我们自然是希望机器人可以自动发消息的,这时候就要用到定时任务了。

在 node.js 上可以用 schedule 实现定时任务:const schedule = require('node-schedule')

schedule.scheduleJob({hour: 9, minute: 30}, function(){

postZhiHu()

})

上面代码可以让机器人在每天上午九点半的时候,发送一条知乎日报的消息。

但为了保证每天都能收到消息,就需要计算机一直运行这个定时任务,关机或待机的时候就收不到消息了。你可以把任务运行在服务器上,或者是用下面教大家的方法。

云函数

腾讯云提供的云函数服务,可以让我们在指定条件下运行代码,特别适合我们的群机器人使用,提供的免费额度对群机器人来说是绰绰有余的。云函数的具体使用方法,大家可以看官方文档:

下面给大家简单讲一下用云函数实现群机器人。

依赖配置

我们依旧使用 node.js 作为运行环境。我们可以使用模板创建云函数,但如果是添加了第三方依赖,在新建云函数时需要把 node_modules 文件夹一起打包上传。

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

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

这样就能愉快的在云函数里使用第三方依赖了。

函数代码

main_handler 是云函数的执行入口,我们对上面知乎日报的代码做一点小小的改造,把下面代码添加到云函数的 index.js 中:const axios = require('axios')

exports.main_handler = (event, context, callback) => {

axios.get('https://news-at.zhihu.com/api/4/news/latest')

.then(response => {

stories = response.data.stories

postMessage(stories)

})

.catch(error => {

console.log(error);

})

}

function postMessage(stories){

var articles = []

stories.forEach(story => {

articles.push({

"title": story.title,

"url": story.url,

"picurl": story.images[0]

})

})

axios.post('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx', {

"msgtype": "news",

"news": {

"articles": articles

}

})

.then(response => {

console.log(response.data);

})

.catch(error => {

console.log(error);

})

}

点击下面的保存后,再点击测试,就能看机器人的知乎日报消息了,跟在本地执行是一样的效果。

触发方式

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

我们添加一个触发方式,使用定时触发。比如我想在周一到周五每天的上午九点半发送消息,就可以这样设置:

关于 Cron 表达式,具体用法大家可以参考文档:

更多玩法?

到这里,我们基本就可以玩转企业微信和钉钉的群机器人功能了。除了上面说的知乎日报,我们还可以给机器人添加天气、新闻、吃饭提醒、会议提醒等消息。

不知道大家还能想到什么有趣的功能,欢迎留言讨论。

https://juejin.im/post/5e200f046fb9a02fd67ea2d7

python企业微信群聊_给企业微信加个群机器人相关推荐

  1. java仿qq群聊_[转载]仿QQ聊天室群聊的练习心得

    javase的学习即将告一段落,作为最后的一个项目练习,仿聊天室的程序编写让我很是头疼了一阵子.说起来还是自己java基础不牢的缘故导致的,虽然整体框架都已经很清晰了但是实际编写过程中却依然磕磕绊绊, ...

  2. python微信指定群聊回复_Python实现微信中找回好友、群聊用户撤回的消息功能示例...

    本文实例讲述了Python实现微信中找回好友.群聊用户撤回的消息功能.分享给大家供大家参考,具体如下: 还在好奇好友撤回了什么消息吗?群里撤回了什么消息?下面的代码实现了:即使群.好友撤回了文本消息. ...

  3. python爬取微信群聊天信息_美女出没微信群 不是来聊天专门抢红包

    原标题:美女出没微信群 不是来聊天专门抢红包 "各位伙伴,最近发现一群人借用美女头像,伺机而动加入众多微信群,主要目的就是用软件工具抢红包,经常起哄新人加入或微信发红包,不但占用微信群资源, ...

  4. python查看微信撤回消息_想查看微信好友撤回的消息?Python帮你搞定

    要说微信最让人恶心的发明,消息撤回绝对能上榜. 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于 ...

  5. android微信群聊功能,Android仿微信群聊头像效果

    在网上找了些仿微信群聊头像的开源库后,发现没特别好用的,或者说满足我需求的,就只好在别人的基础上改了下,也就有了这样的自定义控件了,以此来实现微信群聊头像的效果,效果图如下所示: 主要实现: 一.自定 ...

  6. 怎么从微信群聊中引流?如何从群聊进行引流?微信群怎么引流

    在微信群当中,微信群裂变营销是很恐怖的的,但是,我们都知道微信群不像QQ群一样,没办法进行搜索,所以微信群引流就成为了许多人的难题,那么微信群聊怎么引流呢? 一.个人定位 做微信群引流之前,我们要先定 ...

  7. 微信不小心删除的好友和群聊,如何偷偷的加回来?

    生活中总会有手滑手贱的时候,如果这个时候一不小心将好友或群聊删了,该怎么办呢?还能找回吗? 答案是肯定的,今天我们就来讲讲如何偷偷加回被误删的微信好友.群聊,下面就不说废话了,直接来看看具体的方法吧. ...

  8. 企业研发人员配备比例_高新企业研发人员占比多少

    高新企业研发人员占比多少 (一)申请高新企业的年限要求: <认定办法>第十一条"须注册成立一年以上"是指企业须注册成立365个日历天数以上;"当年" ...

  9. 如何自建微信外卖平台_如何建立微信点餐平台 微信小程序外卖怎么做

    餐道(candao.com)3月15日观察:如今越来越多人使用微信小程序点餐,对于商家来说,这是一个新的业务拓展渠道.那么,微信小程序外卖怎么做呢?首先,我们需要建立一个微信点餐平台.下面小编就教大家 ...

最新文章

  1. python日志模块为什么打印到界面_如何将外部模块的日志消息打印到主Python模块的终端窗口?...
  2. Swoole报错Failed to execute ‘send’ on ‘WebSocket’: Still in CONNECTING state. a
  3. (七)传输加载优化(前沿技术解决高访问量网站性能优化问题)
  4. 程序设计基础c语言版习题答案,C语言程序设计基础知识 习题一及参考答案
  5. 计算机组成结构IR,计算机组成与体系结构试题
  6. 谷歌发布端到端AI平台,还有用于视频和表格的AutoML、文档理解API等多款工具
  7. HttpClientHelper的封装
  8. java小数位-DecimalFormat(转)
  9. Java日志设计实践(1) - 常见问题
  10. windows 安装 dnw、fastboot 驱动的时候遇到问题(数字签名)
  11. 用PS抽出滤镜让头发溶于背景nbsp;简单…
  12. 阿里云服务器Discuz论坛程序安装
  13. 通过自媒体赚钱的13种方式,来看看你适合哪种
  14. 2011年-2019年华东地区产业发展、人口以及平均工资简析
  15. 采购者具体负责的问题
  16. JavaScript(基础知识)
  17. NTFS(文件恢复)最简单情况
  18. MySQL慢查询配置和使用
  19. java中几种常用的对象类型(po,vo,bo,dto)
  20. SLAM基础- 题目:基础矩阵F、本质矩阵E和单应矩阵H的自由度和秩

热门文章

  1. 谷歌浏览器设置打开新标签页为指定网页设置
  2. 《淘宝店铺经营管理一册通》一一1.5 店铺设置
  3. 关于umeditor粘贴图片自动上传
  4. 标准cpci接口定义_cpci定义
  5. ❤️是你的期末大作业吗?Java基础语法就能实现的图书管理系统 ❤️
  6. python setuptools工具使用解析
  7. 攻城狮生活-5 房子置换很难
  8. LeakCanary
  9. [计算机网络]交换机VLAN的作用和原理
  10. ghost里html文件怎么打开,Ghost配置5——添加归档页面