0

    钉钉添加自定义机器人,实现每周定时@某人

    2023.07.15 | admin | 125次围观

    文章目录

    一、添加自定义机器人,获取机器人Webhook 1、选择需要添加机器人的群聊 2、新增自定义机器人

    群设置-智能群助手-添加机器人-选择自定义机器人

    3、配置机器人信息

    机器人名字:随便起一个

    安全设置:

    自定义关键词:设定后,只有包含关键词的消息内容才会被正常发送设定后cs16服务器添加机器人,只有包含关键词的消息内容才会被正常发送加签:使用加密签名IP地址(段):设定后,只有来自IP地址范围内的请求才会被正常处理 4、获取Webhook地址

    完成安全设置后cs16服务器添加机器人,复制出机器人的Webhook地址,可用于向这个群发送消息,格式如下:

    5、机器人是否添加成功

    机器人添加成功后在群里会有一条通知

    二、使用自定义机器人

    获取到Webhook地址后,用户可以向这个地址发起HTTP POST 请求,即可实现给该钉钉群发送消息。

    注意:

    当前自定义机器人支持文本 (text)、链接 (link)、markdown(markdown)、ActionCard、FeedCard消息类型,请根据自己的使用场景选择合适的消息类型,达到最好的展示样式。详情参考:自定义机器人接入

    自定义机器人发送消息时,可以通过手机号码指定“被@人列表”。在“被@人列表”里面的人员收到该消息时,会有@消息提醒。免打扰会话仍然通知提醒,首屏出现“有人@你”。

    通过以下方法,可以快速验证自定义机器人是否可以正常工作:

    curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' \
    -H 'Content-Type: application/json' \
    -d '{"msgtype": "text","text": {"content":"我就是我, 是不一样的烟火"}}'
    

    效果:

    三、实现定时通知某负责人(Python实现) 1、下载三方库(DingtalkChatbot)

    执行命令:pip3 install DingtalkChatbot

    2、代码实现

    (1)aList中存放需要被通知的人员,每次只@一个人

    (2)通过一个ini文件记录当前执行到第几次

    (3)aPhone就是本次要被@的人,取的aList中的某个人

    (4)aList的下标获取办法:使用ini文件中的times,times与aList列表的长度取余得到下标

    from dingtalkchatbot.chatbot import DingtalkChatbot
    from configparser import ConfigParser
    import sys
    import io
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding ='utf-8')
    # 双周周一提醒
    '''
    # 手机号
    '18xxxxxxxxx'  # 某人1
    '13xxxxxxxxx'  # 某人2
    '15xxxxxxxxx'  # 某人3
    '''
    class releaseTask():
        def releaseAlert(self, webhook, phone, title, text, message_url, msg):
            webhook = webhook
            dingding = DingtalkChatbot(webhook)
            # 发送 link消息,文案里必须要有:自定义关键词test
            dingding.send_link(title=title, text=text,
                               message_url=message_url)
            # 发送 Text消息@某人,文案里必须要有:自定义关键词test
            at_mobiles = [phone]
            dingding.send_text(msg=msg, at_mobiles=at_mobiles)
            print(sys.stdout)
            print(at_mobiles)
            print("提醒成功")
        def read_config(self, cfg_file):
            cfg = ConfigParser()
            cfg.read(cfg_file)
            return cfg
    releaseTask = releaseTask()
    filepath = "index.ini"
    # 取cfg文件值
    cfg = releaseTask.read_config(filepath)
    times = int(cfg.get('release', 'times'))
    aList = ["18xxxxxxxxx", "13xxxxxxxxx", "15xxxxxxxxx"]
    alength = len(aList)
    aPhone = aList[times % (alength)]
    # webhook
    webhook_release = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxx'
    title = '提醒机器人test'
    text = '点击这里,查看流程文档吧test'
    message_url = 'https://wiki.quickcan.com/pages/viewpage.action?pageId=xxxx'
    msg = '本期由以下同学负责test'
    # 跟版负责人提醒
    releaseTask.releaseAlert(webhook_release, aPhone, title, text, message_url, msg)
    # 更新cfg文件值
    times_update = times + 1
    cfg.set('release', 'times', str(times_update))
    cfg.write(open(filepath, "w"))
    

    执行后:

    效果:

    3、定时任务

    使用Jenkins实现,Jenkins设置定时任务可参考:jenkins详细教程

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论