• python之钉钉机器人自动发消息——傻瓜式教程


    python之钉钉机器人自动发消息——傻瓜式教程

    前言

    钉钉、飞书、企业微信在各大企业中算是排得上大号的即时通讯贩子了。

    身为一个菜鸡,自然会玩的比较花,这不,N年前,我老大就有个需求。

    自动化跑完的结果,需要自动发送到钉钉群,自动将数据、报告、截图等保存至公司内部服务器,钉钉通知的时候,需要有个链接,点击就可以跳转。

    好,需求就是这么个需求。当时对于我来说,简直就是,两眼一抹黑,然后打开浏览器的搜索框一搜。我的嘴角疯狂的上扬,资料这么多,奈我何?

    那既然资料都这么多了,为什么我还要写这篇文呢?

    答曰:爷乐意!

    (咳咳,有点狂了,刚刚外面人多,大大们我就是想水篇一下QAQ)

    钉钉创建机器人

    注:前提你得是这个群组的群主或者管理员

    主要流程如下:

    **–> 1.点击群设置 **

    –> 2.点击智能群助手

    –> 3.点击添加机器人

    –> 4.添加自定义机器人

    细节流程如下

    第一步:打开钉钉所在群组

    点击群设置,点击智能群助手

    请添加图片描述

    第二步:添加机器人

    请添加图片描述

    第三步:添加机器人

    请添加图片描述

    第四步:添加自定义机器人

    请添加图片描述

    第五步:点击添加

    请添加图片描述

    第六步:添加完成

    (1)头像可以进行修改

    (2)机器人名字自己可以随意命名,比如我用的是狗头BOSS,大家可以借鉴参考

    (3)安全设置:需要勾选加签(加签之后会有密钥,自己复制保存好,后面需要用到)

    (4)勾选我已阅读并同意

    (5)点击完成(完成之后会有一个webhook地址,自己复制保存好,后面需要用到)

    (6)官方相关文档: 钉钉开放文档 (dingtalk.com)

    请添加图片描述

    请添加图片描述

    通过上面这些步骤,一个自定义的机器人就创建好啦,接下来就开始愉快地打开pycharm或者vscode或者txt来写代码吧

    注:如果你在上述步骤中,手比较贱,或者说手速比较快,没保存好秘钥及webhook,不用着急重新创建,只需要再次打开智能群助手,打开你刚刚创建的机器人,鼠标滑动滑动,你就能看到webhook和秘钥啦

    python连接dingtalk

    开心的打开我的pycharm

    首先下载好dingtalk的三方库

    pip install DingtalkChatbot
    
    • 1

    如果下载失败,可以用下面这条

    pip install DingtalkChatbot -i http://pypi.douban.com/simple
    
    • 1

    导入包

    from dingtalkchatbot.chatbot import DingtalkChatbot
    
    • 1

    发送MarkDown格式消息

    源码展示

    这个方法可以自己根据需求进行修改,之后再自己自动化代码跑完之后,调用这个函数,就会自动把你想要发送的内容发到对应的钉钉群了。

    from dingtalkchatbot.chatbot import DingtalkChatbot
    from datetime import  datetime
    def dingtalk_robot(webhook,secret):
        dogBOSS = DingtalkChatbot(webhook, secret)
        red_msg = '级别:危险'
        orange_msg = '级别:警告'
    
        now_time = datetime.now().strftime('%Y.%m.%d %H:%M:%S')
        url = 'https://blog.csdn.net/qq_46158060?type=blog'
        dogBOSS.send_markdown(
            title=f'来自梦无矶小仔的提醒',
            text=f'### **我是主内容的第一行**\n'
                  f'**{red_msg}**\n\n'
                  f'**{orange_msg}**\n\n'
                  f'**发送时间:**  {now_time}\n\n'
                  f'**相关网址:**[点击跳转]({url}) \n',
            is_at_all=True)
    
    if __name__ == '__main__':
        webhook = '刚你记录的webhook填这里'
        secrets = '刚你记录的秘钥填这里'
        dingtalk_robot(webhook=webhook,
                       secret=secrets)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    效果展示

    大字就是你机器人的名字

    代码中title就会显示到这个小字里面

    请添加图片描述

    下面这个就是在群里的消息展示

    请添加图片描述

    代码分析

    其实平常写笔记用的是markdown语法的小伙伴,这些瞅一眼就会了,这里我大致讲一下。

    颜色

    直接可以用html格式写,这里提供几种颜色供大家选择,直接在我代码里面替换就可以。

    浅绿色 #00FFFF
    淡蓝色 #F0FFFF
    蓝色 #0000FF
    青色 #00FFFF
    墨绿色 #2F4F4F
    深天蓝色#00BFFF
    闪兰色 #1E90FF
    森林绿 #228B22
    紫红色 #FF00FF
    金色 #FFD700
    绿色 #008000
    橙色 #FFA500
    粉红色 #FFC0CB
    紫色 #800080
    红色 #FF0000
    天蓝色 #87CEEB
    青绿色 #40E0D0
    紫罗兰色#EE82EE
    浅黄色 #F5DEB3
    黄色 #FFFF00
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    是否@所有人

    is_at_all=True # True代表是,False代表否
    
    • 1

    源码粗讲

    除了DingtalkChatbot,官方还提供了ActionCard、FeedLink、CardItem的消息发送方式。

    请添加图片描述

    另外在DingtalkChatbot中,除了刚刚展示的MarkDown格式的展示方式,还有如下的方式。

    每个方法参数都写的非常详细,大家有兴趣可以一个个自己去尝试,只需要把我上面代码dogBOSS.send_markdown改成对应方法就行。

    请添加图片描述

    actioncard

    def dingtalk_robot_actioncard(webhook,secret):
        dogBOSS = DingtalkChatbot(webhook, secret)
        btns = [{"title": "查看详情", "actionURL": "www.baidu.com"}]
        actioncard = ActionCard(title='梦无矶小仔发来的ActionCard消息',
                                 text='![图片名称](https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.jj20.com%2Fup%2Fallimg%2F4k%2Fs%2F02%2F2109242332225H9-0-lp.jpg&refer=http%3A%2F%2Fimg.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1663494674&t=809747c738dd22e73143623968185646) \n'
                                      '### 好家伙,原来是百度!',
                                 btns=btns,
                                 btn_orientation=1,
                                 hide_avatar=1)
        dogBOSS.send_action_card(actioncard)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    请添加图片描述

    这个只是一个选项的,还可以有多个,可以在btns那里多写几个字典。展示如下:

    请添加图片描述

    其他的自己去玩吧,水完了,愉快的一天又结束啦!

    周末愉快~请添加图片描述

  • 相关阅读:
    express-generator生成nodejs服务基本骨架
    地址总线、物理地址、虚拟地址讲解
    SQL Server教程 - SQL Server介绍
    MySQL高级——引擎
    (01)vite 从启动服务器开始
    『 基础算法题解 』之双指针(下)
    使用 Spring Profiles 的正确姿势
    【Hive】内置函数—字符串函数
    数据结构--7.1散列表(哈希表)查找
    安装tldr
  • 原文地址:https://blog.csdn.net/qq_46158060/article/details/126430002