python_在钉钉群@人员发送消息
1、第一种
企业内部机器人群聊实现@人接入指南,适用于@群机器人接收消息,处理完一系列的动作之后,将消息返回给发消息的人员,同时@该人员。
需要在企微后台新建一个自建应用,在自建应用里面添加机器人,再把该机器人拉进群。
import requests
def send_msg_to_dingtalk(webhook_url,user_id,mes_content):data={"at": {"atUserIds":[user_id],"isAtAll": False},"text": {"content":mes_content},"msgtype":"text"
}result=requests.post(url=webhook_url,json=data)return result.json()webhook_url="XXX"
user_id="XXX"
mes_content="你好,有什么需要帮助的么"print(send_msg_to_dingtalk(webhook_url,user_id,mes_content))
效果展示:
2、第二种:
自定义机器人发送群消息,适用于没有前面接收群消息的步骤,只是发送群通知。跟影刀指令里面的“钉钉群通知”实现的原理和效果一样。
import requests
import json
import base64
import time
import hmac
import hashlibdef generate_sign(secret, timestamp):"""生成加签"""string_to_sign = f'{timestamp}\n{secret}'hmac_code = hmac.new(secret.encode("utf-8"), string_to_sign.encode("utf-8"), digestmod=hashlib.sha256).digest()sign = base64.b64encode(hmac_code).decode("utf-8")return sign
def send_msg_to_dingtalk(webhook_url,secret,user_id,mes_content):timestamp = str(round(time.time() * 1000))sign = generate_sign(secret, timestamp)post_url = '{}×tamp={}&sign={}'.format(webhook_url, timestamp, sign)# 构造请求头headers = {'Content-Type': 'application/json'}payload = {"at":{"isAtAll":"false","atUserIds":[user_id]},"text":{"content":mes_content},"msgtype":"text"}result=requests.post(url=post_url, headers=headers,data=json.dumps(payload))return result.json()webhook_url="XXX"
secret="XXX"
user_id="XXX"
mes_content="你好,需要帮助么"print(send_msg_to_dingtalk(webhook_url,secret,user_id,mes_content))
效果展示: