钉钉群自定义机器人for Python

2022-05-10 13:56:34 浏览数 (1)

一、机器人接入

1、钉钉自定义机器人接入官方文档

2、由于官方文档没有提供Python版本,补充一下 安装: pip install DingtalkChatbot

3、支持的功能

代码语言:javascript复制
支持Text消息;
支持Link消息;
支持image表情消息;
支持Markdown消息;
支持ActionCard消息;
支持消息发送失败时自动通知(默认fail_notice=False不通知,开发者可根据返回的消息发送结果自行判断处理)
支持设置消息链接打开方式(默认pc_slide=False,跳转至浏览器打开,pc_slide=True,则在PC端侧边栏打开)
支持钉钉官方消息发送频率限制限制:每个机器人每分钟最多发送20条;
支持Python2、Python3;

二、获取自定义机器人Webhook

添加群机器人,保存Webhook

三、举个例子

发送链接类的机器人消息(无图片,若想带图,可在send_link方法中添加参数pic_url=''xxx"

代码语言:javascript复制
# 钉钉
from dingtalkchatbot.chatbot import *

#Webhook地址
url = "https://oapi.dingtalk.com/robot/send?access_token=xxxx"

#要跳转的网页地址
message_url =  'http://xxx/index'

#跳转消息显示的文案
message = '详情请点击查看"

DingtalkChatbot(url).send_link(title="自动化告警", text=message, message_url=message_url)

发送后的效果图

四、其他类型的消息

1、发送文本

代码语言:javascript复制
    url = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxx'
    text = '告警!这是一条仅有文字的消息'
    at_mobiles = ['135xxxxx']
    is_auto_at = True

    DingtalkChatbot(url).send_text(msg=text, at_mobiles=at_mobiles, is_auto_at=True)
        """
        text类型
        msg: 消息内容
        is_at_all: @所有人时:true,否则为false(可选)
        at_mobiles: 被@人的手机号(注意:可以在msg内容里自定义@手机号的位置,也支持同时@多个手机号,可选)
        at_dingtalk_ids: 被@人的dingtalkId(可选)
        is_auto_at: 是否自动在msg内容末尾添加@手机号,默认自动添加,可设置为False取消(可选)
        """

发送后效果

2、发送markdown

代码语言:javascript复制
    url = 'https://oapi.dingtalk.com/robot/send?access_token=xxxx'
    title = '告警!markdown样式'
    text = '## 标题n### 副标题n>引用文字n![图片链接](https://alifei05.cfp.cn/creative/vcg/800/new/VCG211363439424.jpg)'

    DingtalkChatbot(url).send_markdown(title=title,text=text)
        """
        markdown类型
        title: 首屏会话透出的展示内容
        text: markdown格式的消息内容 
        """

发送后效果

3、发送ActionCard

代码语言:javascript复制
    url = 'https://oapi.dingtalk.com/robot/send?access_token=xxxx'
    title = '告警!markdown样式'
    text = '![图片链接](https://alifei05.cfp.cn/creative/vcg/800/new/VCG211363439424.jpg) nn ### 标题 nn ### 副标题 nn'

    btns = [{"title": "内容不错", "actionURL": "https://www.baidu.com/"},
            {"title": "不感兴趣", "actionURL": "https://www.baidu.com/"}]
    action_card = ActionCard(title, text, btns)
    DingtalkChatbot(url).send_action_card(action_card=action_card)
            """
           ActionCard初始化
           title: 首屏会话透出的展示内容
           text: markdown格式的消息
           btns: 按钮列表:(1)按钮数量为1时,整体跳转ActionCard类型;(2)按钮数量大于1时,独立跳转ActionCard类型;
           """

发送后效果

0 人点赞