python_在钉钉群@人员发送消息

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 hashlib

def 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 = '{}&timestamp={}&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))

效果展示:

相关推荐
寒山李白2 小时前
解决 python-docx 生成的 Word 文档打开时弹出“无法读取内容“警告
python·word·wps·文档·docx·qoder
liang_jy2 小时前
Android SparseArray
android·源码
liang_jy3 小时前
Activity 启动流程扩展篇(一)—— startActivityInner 任务决策全解析
android·源码
2401_832365523 小时前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
Sirius.z3 小时前
第J3周:DenseNet121算法详解
python
2301_779622413 小时前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
2301_766283443 小时前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
NPE~4 小时前
[App逆向]脱壳实战
android·教程·逆向·android逆向·逆向分析
木易 士心4 小时前
别再只会用 drawCircle 了!一文搞懂 Android Canvas 底层机制
android
小康小小涵5 小时前
基于ESP32S3实现无人机RID模块底层源码编译
linux·开发语言·python