Bootstrap

Python调用钉钉工作群用机器人发送消息

一、钉钉群设置

打开钉钉群,点击右上角的设置
在这里插入图片描述下拉进行选择,智能助手
在这里插入图片描述
点击添加机器人,可以发现有自定义机器人,可以通过webhook接入自定义服务
在这里插入图片描述
添加机器人的过程中,建议选择加签,也就是可以用密钥来发送消息
在这里插入图片描述然后差不多就设置结束,我们需要记住自己的webhook地址加签值,也可以后面再查看
在这里插入图片描述二、Python调用钉钉工作群用机器人发消息

from dingtalkchatbot.chatbot import DingtalkChatbot, FeedLink

def sendDingTalkMsg(text: str):
    """
    使用钉钉群聊天机器人发送消息
    :param text: 消息内容
    :return:
    """
 
    """第一: 发送文本-->
        send_text(self,msg,is_at_all=False,at_mobiles=[],at_dingtalk_ids=[],is_auto_at=True)
            msg: 发送的消息
            is_at_all:是@所有人吗? 默认False,如果是True.会覆盖其它的属性
            at_mobiles:要@的人的列表,填写的是手机号
            at_dingtalk_ids:未知;文档说的是"被@人的dingtalkId(可选)"
            is_auto_at:默认为True.经过测试,False是每个人一条只能@一次,重复的会过滤,否则不然,测试结果与文档不一致
        """
    SignMessage = getSIGN()
    xiaoDing = DingtalkChatbot(SignMessage)  # 初始化机器人
    xiaoDing.send_text(text)
    logging.error('钉钉发送消息:' + text)

    return


# 获取链接,填入urlToken 和 secret
def getSIGN():
    timestamp = str(round(time.time() * 1000))
    urlToken = "https://oapi.dingtalk.com/robot/send?access_token=************************************"
    secret = '************************************"'
    secret_enc = secret.encode('utf-8')
    string_to_sign = '{}\n{}'.format(timestamp, secret)
    string_to_sign_enc = string_to_sign.encode('utf-8')
    hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
    sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))

    SignMessage = urlToken + "&timestamp=" + timestamp + "&sign=" + sign
    return SignMessage
;