查看原文
其他

用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的名字设置成了关键字定时推送

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

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

是不是很方便呢



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

别光顾着收藏文章,点赞走起


精彩推荐


10 个疯狂的 Python 项目创意

2021-12-15

8个常用的Python数据分析库(附案例+源码)

2021-12-14

用Python爬取某宝2008条棉袄商品数据,进行可视化分析,终于找到最值得入手的棉袄~

2021-12-14

Python操作Excel自动化实战案例

2021-12-13

利用Python做一个漂亮小姐姐词云跳舞视频

2021-12-12


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存