钉钉报警qt和python3版本

本文介绍如何使用Python3和Qt实现钉钉报警功能,通过发送文本消息到指定的钉钉机器人,适用于自动化监控和警报场景。文章提供Python和Qt的代码示例,展示了如何构建请求、设置头部信息及发送消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

钉钉报警qt和python3版本

python3:

#!/usr/bin/env python3
 
import json
import requests
import sys
 
 
def send_msg(url, reminders, msg):
    headers = {'Content-Type': 'application/json;charset=utf-8'}
    data = {
        "msgtype": "text",  
        "at": {
            "atMobiles": reminders,
            "isAtAll": False,   
        },
        "text": {
            "content": 'warning:' + msg,
        }
    }
    r = requests.post(url, data=json.dumps(data), headers=headers)
    return r.text
 
if __name__ == '__main__':
    msg = sys.argv[1]
    reminders = []
    url = 'https://oapi.dingtalk.com/robot/send?access_token='
    print(send_msg(url, reminders, msg))

qt:

QNetworkAccessManager *manager = new QNetworkAccessManager()

void AlarmDingDing::SendTextMsg(const QString &msg)
{
    QUrl url("https://oapi.dingtalk.com/robot/send?access_token=");
    QNetworkRequest request(url);
    request.setRawHeader("Content-Type","application/json;charset=utf-8");

    QString data = assembleJsonTestMsg(msg);
    qDebug() << QDateTime::currentDateTime() << " SendTextMsg:" << data;
    QNetworkReply *reply = manager->post(request,data.toLocal8Bit());
    connect(reply,SIGNAL(finished()),this,SLOT(onFinished()));
}

void AlarmDingDing::onFinished()
{
    QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
    if (nullptr == reply)
    {
        return;
    }

    QByteArray byteArray = reply->readAll();
    reply->deleteLater();
    reply = nullptr;

    QString recvMsg = QString(byteArray);
    qDebug() << QDateTime::currentDateTime()  << " RecvDingDingMsg:" << recvMsg;

}

QString AlarmDingDing::assembleJsonTestMsg(const QString &msg)
{
    QVariantMap varMap;
    varMap["msgtype"] = "text";

    QVariantMap atMap;
    atMap["atMobiles"] = QStringList();
    atMap["isAtAll"] = false;
    varMap["at"] = atMap;

    QVariantMap textMap;
    textMap["content"] = QString("?warning?:%1").arg(msg);
    varMap["text"] = textMap;

    return mapToJson(varMap);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值