QT 绑定企业微信群消息
在代码中绑定对应的企业微信群。实时接收客户端的信息。
有时候我们需要实时知道客户端的运行情况以及一些报错信息,或者终端的一些其它消息。
可以用企业微信提供的https接口实现。下面给出具体方法和代码。给自己做个笔记。也希望可以帮助到有需要的人。
上操作:
- 企业微信中建一个群
建好群后点击右上方的三个点,选择 添加群机器人
这个地址就是后续接收消息的https的地址。也可以将鼠标移到机器人上就会出现地址弹窗,右键机器人也可以(如下图)鼠标移动到机器人上或者右键机器人名都可以拿到连接
2.上代码
包含头文件:
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkReply>
#include <QEventLoop>
#include <QJsonDocument>
具体实现代码:
void QtTest::PushBtn()
{
QString url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=*******"; //这里填入上面企业微信机器人生成的https连接
QJsonObject Msg, text;
QString ms = "Hello !";
text.insert("content", "[" + ms + "]\r\n" + ms); //发送的是json格式的。插入自需要的信息;
Msg.insert("text", text);
Msg.insert("msgtype", "text");
QJsonDocument document = QJsonDocument(Msg);
QByteArray qByteHttpData = document.toJson(); //构造出机器人能够识别的json格式
QNetworkAccessManager m_pHttpMgr;
QNetworkRequest requestInfo;
requestInfo.setUrl(QUrl(url));
requestInfo.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json; encoding=utf-8"));
QNetworkReply* reply = m_pHttpMgr.post(requestInfo, qByteHttpData);
QEventLoop eventLoop;
QtTest::connect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
eventLoop.exec(); //等待应答。
if (reply->error() == QNetworkReply::NoError)
{
qDebug() << "sent success!";
}
else
{
QString mes = QString("sent failed!\nError: %1").arg(reply->errorString());
qDebug() << mes;
}
}
到这里就完成了。
看最终结果: