用Python定时发送图片到群消息,并艾特了所有人! 您所在的位置:网站首页 钉钉如何截屏长图发送到微信 用Python定时发送图片到群消息,并艾特了所有人!

用Python定时发送图片到群消息,并艾特了所有人!

2024-06-29 14:36| 来源: 网络整理| 查看: 265

大家好,我是小一2fd683a51342ccdd44b996045e3ca336.png

昨天关于excel自动化的那篇文章发出之后,感觉大家对这个还挺感兴趣,并且在才哥那边有好几位读者在追问如何实现图片自动发送

971cfd3ac010081fe3536643c428eae7.png

说实话,有点惊讶大家对图片定时发送感兴趣,我原以为会有读者对模型的原理比较好奇呢b5c3569cb5243a9e594f2d6f73d0ad2c.png

不过,既然大家问到了,今天也就来说说我自己在用的方法。

图片定时发送我已经用了一个多月了,目前用的挺好,没有出现什么奇怪的问题,所以这个方法应该也比较成熟,大家都可以自己去复现一下

当然了, 如果有比我分享的更好用的方法(肯定会有),可以在留言区留言,大家一起学习一下。

先说一下我的实现原理:上传图床+群机器人+定时发送

对了,在进行图片自动化发送的时候,我默认你是已经可以把excel表格转化成本地图片了

先来说第一个,图床

在自动化发送图片的时候,我在想一个问题:你要发的图片要能在线显示,或者在在线显示有问题的时候用户还可以点击链接查看。于是,必备的两个条件:在线显示+链接

能完美解决上面的问题的,我能想到的有一个办法:图床

将图片上传到xxx图床平台,之后在访问的时候只需要点击该图片对应的访问url就行

一般常用的免费图床平台有github、gitee、SMS等等,还有一些像csdn、微博、知乎等可以用的,付费的像xx云平台这种,可能会更稳定,但是目前我用了一个月免费的,也没有发现什么问题,所以就不推荐大家去用付费的

刚开始的时候,我用的是github(因为一直在用github做代码管理),上传图片是没有什么问题,但是如果你没有访问工具,一般10次有9次图片是无法在线预览的,即使你使用url访问也会经常挂掉。

之后我去试了SMS图床,比github好点,但是偶尔还是会挂掉

最后我用了gitee,就再也没有发生过问题了。

总结,图床推荐大家用gitee,把你用excel生成的图片上传到gitee

需要注意图片的名称不能重复,最好是用时间戳命名

另外,如何上传图片到gitee,bing搜索关键字:上传图片到gitee,你会找到你想要的答案,不赘述了

再来说第二个,群机器人

如果你选择的是用邮件通知,可以参考以前写过的Python操作邮件发送的那篇文章

今天讲的是通过群机器人进行通知,这里的群可以是微信群也可以是钉钉群,推荐用后者。因为官方做了详细的接口,稍微设置一下,三两行代码就能直接用来发送群消息

首先我们打开钉钉,随便拉2个人,创建一个群聊,点击群设置中的智能群助手。

2e481f8b6abed4c0d5f7add274de61a5.png

进入到机器人管理页面,点击添加机器人,进入机器人选择页面,这里选择自定义机器人。

289c01869d56038693f4fb678d60cb01.png

需要给机器人修改头像和名称,在安全设置里面,建议最好把自定义关键字也勾选上,比如我这里设置的是:定时推送,然后其他的可以默认,点击完成后在新的页面有一个webhook

9cf4c97d7640245049d9df05f8613d11.png

0cbad2444102d444af69d0625b90d8bb.png

这个比较重要,后面要用到,一定要备份好

总结,这里需要注意的有两个:一个机器人的webhook,一个是自定义关键字

再来说第三个,定时推送

这个我记得我有写过详细的教程,一篇是linux下的,基于cron服务进行程序的定时执行;一篇是window下,通过任务计划程序进行程序的定时执行。

感兴趣的可以点击学习下:

win10下自动化任务,五步快速实现

linux下自动化任务,三步快速实现

这里,我直接贴如何调用上一步的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的名字设置成了关键字定时推送

上述操作你成功设置了之后,运行代码之后,你的钉钉群会收到这样一个消息通知:

f3ec260e73e3313cb6b074a9ddc74e6d.png

图片下方有一个请点击此处的蓝色超链接,当钉钉群的图片因为网络波动的原因无法显示,群用户就可以通过点击这个链接进行查看

是不是很方便呢53b3070866419e7e003a808e4d00f51a.png

1d6acdb3e3b9267a45f984ce32d05f9a.png

以上就是本次的所有内容,感兴趣的同学可以实操一下,也欢迎其他有更好用的方法的同学一起分享

我是小一,下节见!

别光顾着收藏文章,点赞走起4ae4ab79764c6794602ca9631d710b3d.png



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有