用Python定时发送图片到群消息,并艾特了所有人!
The following article is from 小一的学习笔记 Author xiaoyi
大家好,我是辰哥~
今天给大家分享一个图片定时发送方法,当然了, 如果有比我分享的更好用的方法(肯定会有),可以在留言区留言,大家一起学习一下。
先说一下我的实现原理:上传图床+群机器人+定时发送
对了,在进行图片自动化发送的时候,我默认你是已经可以把excel表格转化成本地图片了
先来说第一个,图床
在自动化发送图片的时候,我在想一个问题:你要发的图片要能在线显示,或者在在线显示有问题的时候用户还可以点击链接查看。于是,必备的两个条件:在线显示+链接
能完美解决上面的问题的,我能想到的有一个办法:图床
将图片上传到xxx图床平台,之后在访问的时候只需要点击该图片对应的访问url就行
一般常用的免费图床平台有github、gitee、SMS等等,还有一些像csdn、微博、知乎等可以用的,付费的像xx云平台这种,可能会更稳定,但是目前我用了一个月免费的,也没有发现什么问题,所以就不推荐大家去用付费的
刚开始的时候,我用的是github(因为一直在用github做代码管理),上传图片是没有什么问题,但是如果你没有访问工具,一般10次有9次图片是无法在线预览的,即使你使用url访问也会经常挂掉。
之后我去试了SMS图床,比github好点,但是偶尔还是会挂掉
最后我用了gitee,就再也没有发生过问题了。
总结,图床推荐大家用gitee,把你用excel生成的图片上传到gitee
需要注意图片的名称不能重复,最好是用时间戳命名
另外,如何上传图片到gitee,bing搜索关键字:上传图片到gitee,你会找到你想要的答案,不赘述了
再来说第二个,群机器人
如果你选择的是用邮件通知,可以参考以前写过的Python操作邮件发送的那篇文章
今天讲的是通过群机器人进行通知,这里的群可以是微信群也可以是钉钉群,推荐用后者。因为官方做了详细的接口,稍微设置一下,三两行代码就能直接用来发送群消息
首先我们打开钉钉,随便拉2个人,创建一个群聊,点击群设置中的智能群助手。
需要给机器人修改头像和名称,在安全设置里面,建议最好把自定义关键字也勾选上,比如我这里设置的是:定时推送,然后其他的可以默认,点击完成后在新的页面有一个webhook
总结,这里需要注意的有两个:一个机器人的webhook,一个是自定义关键字
再来说第三个,定时推送
这个我记得我有写过详细的教程,一篇是linux下的,基于cron服务进行程序的定时执行;一篇是window下,通过任务计划程序进行程序的定时执行。
感兴趣的可以点击学习下:
这里,我直接贴如何调用上一步的webhook进行消息通知
我使用钉钉机器人的原因是官方做了非常详细的接口和使用文档,用两三行代码可以直接调用
以下是官方文档,非常详尽:
https://open.dingtalk.com/document/robots/custom-robot-access?spm=ding_open_doc.document.0.0.62846573TCzj7A#topic-2026027
因为机器人可以发送markdown形式的通知,而markdown是一种卡片式的、可以在线进行预览的消息通知,刚好就很适合我们这次的需求
对应的消息通知的格式化代码如下:
url = 'https://oapi.dingtalk.com/robot/send?access_token=' + token_dd
headers = {'Content-Type': 'application/json;charset=utf-8'}
data = {
"msgtype": "markdown",
"markdown": {
"title": "定时推送",
"text": "策略定时推送中,当前可操作:\n {0} \n 图片若无法查看,[请点击此处]({1}) \n\n请谨慎操作!!\n".format(md_pic_url, pic_url)
},
"at": {
"isAtAll": at_all
},
}
res = requests.post(url, data=json.dumps(data), headers=headers)
print(res.text)
上面的代码中有四个参数需要设置,分别是:token_dd、md_pic_url、pic_url、at_all,分别解释一下:
token_dd:上一步中webhook中的token at_all:是否@全体成员,True表示是 pic_url:上传到图床的图片链接 md_pic_url:markdown形式的图片链接,示例:![名称 ](pic_url)
需要注意你的通知内容中需要包含上一步设置的关键字,例如我将title的名字设置成了关键字定时推送
上述操作你成功设置了之后,运行代码之后,你的钉钉群会收到这样一个消息通知:
是不是很方便呢
以上就是本次的所有内容,感兴趣的同学可以实操一下,也欢迎其他有更好用的方法的同学一起分享
别光顾着收藏文章,点赞走起
精彩推荐
2021-12-15
2021-12-14
2021-12-14
2021-12-13
2021-12-12