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

本文介绍了一种使用Gitee图床和钉钉机器人实现图片定时发送的方法,包括如何上传图片、设置Gitee的webhook、配置钉钉机器人的自定义关键字,并演示了调用机器人发送Markdown格式通知的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,我是辰哥~

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

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

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

先来说第一个,图床

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

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

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

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

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

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

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


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

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

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

再来说第二个,群机器人

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

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

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

451efd4b03edffba7724f3d51bba694d.png

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

17e66b62a96b4115e57f3f1b9c7e843a.png

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

12fd7e423d6258312b7abb67b4283d99.png

b9a0067043423ded8636166b193ef758.png

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

总结,这里需要注意的有两个:一个机器人的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的名字设置成了关键字定时推送

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

3c62f45bf18cd507ad65cf0462bd0c57.png

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

是不是很方便呢a0d85ea9b6070a102c3a7523c1861d28.png

6ed17be5daf8fc7e9e96be7c6a26dc5f.png

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

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

精彩推荐

10 个疯狂的 Python 项目创意

2021-12-15

1211e5d1e9e9844e124643aba4e7a436.png

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

2021-12-14

52cfe2d4766a7d06c3b925367cf3a51e.png

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

2021-12-14

2b8ebd84b3155381abf8593b5b70ec14.png

Python操作Excel自动化实战案例

2021-12-13

00286344caacbdfc7078d5c971492c97.png

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

2021-12-12

94c8a42d88f953a72d16974142397229.png
<think>好的,我现在需要帮助用户解决在企业微信机器人中使用Markdown消息艾特所有人的问题。首先,我得回忆一下企业微信机器人的相关文档,确保自己理解正确的消息格式。记得企业微信的Markdown支持有一定的语法限制,可能需要特定的格式来@所有人。 用户提到了@all,所以首先确认企业微信机器人是否支持在Markdown中使用@all。根据之前的经验,企业微信的Markdown消息中确实可以通过特定的语法来@全体成员,但可能需要结合通知的文本内容来使用。比如,在正文中使用<@all>这样的标签,或者在消息体中指定mentioned_list参数。 接下来,我需要查找具体的示例。可能正确的格式是在Markdown内容里包含`@all`,且还要在消息的JSON结构里指定mentioned_list字段为["@all"]。例如,消息体应该同时包含markdown内容和mentioned_list的设置,以确保@所有人生效。 另外,要注意的是,企业微信的Markdown语法可能与其他平台有所不同,需要严格按照他们的文档来写。比如,正文中使用`<@all>`或者直接@all,但可能需要配合mentioned_list参数才能触发通知。同时,用户可能还需要在发送消息的POST请求中正确设置这两个部分。 现在,我需要验证这些信息是否正确。假设之前有相关的引用,比如引用[1]提到机器人可以发送Markdown形式的通知,适合他们的需求。而引用[2]则提到使用Python发送图片@所有人,可能涉及到了消息格式的具体实现。因此,正确的示例应该包括markdown字段中的@all标签,以及设置mentioned_list为["@all"],可能还需要在JSON结构中正确放置这些参数。 最后,总结出正确的消息格式示例,确保用户能够直接复制使用,提醒他们注意替换webhook地址和其他内容。同时,可能还需要提到需要聊类型支持@all功能,因为有些类型可能限制了这个功能。</think>在企业微信机器人中使用Markdown消息@全体成员时,需通过特殊语法实现。正确的消息格式应包含两个关键要素: 1. Markdown内容中使用`<@all>`标签 2. 消息体中设置`mentioned_list`参数 **完整JSON消息示例**: ```json { "msgtype": "markdown", "markdown": { "content": "**紧急通知**\n> 请全体成员立即查看更新\n<@all>" }, "mentioned_list": ["@all"] } ``` **Python代码实现示例**: ```python import requests webhook_url = "你的机器人webhook地址" payload = { "msgtype": "markdown", "markdown": { "content": "**系统升级通知**\n> 服务器将于今晚23:00进行维护\n<@all>" }, "mentioned_list": ["@all"] } response = requests.post(webhook_url, json=payload) print(response.text) ``` **注意事项**: 1. 必须同时包含`<@all>`标签和`mentioned_list`参数 2. 仅在企业微信3.1.10及以上版本生效 3. 需使用聊机器人而非单聊机器人 4. 每个消息最多触发5次@all提醒[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值