Qt6http调用企业微信机器人发送消息,向微信推送信息

本文详细介绍了XQRobotWeCom类,展示了如何使用其发送文本、Markdown、图片、图文链接以及文件的功能,包括设置和获取API参数、测试代码示例和文件上传流程。
摘要由CSDN通过智能技术生成

实现功能

XQRobotWeCom

实现功能成员函数
发送普通文本sendText
发送Markdown文本sendMarkdown
发送图片sendImage
发送图文sendArticles
发送文件sendFile

本项目安装静态库到Qt

源代码

XQRobotWeCom 完整实现 里面还依赖一些其他类,在里面都可以找到,推荐整个克隆下来看方便

完整库源码

​​​​​​​​​​​​​​XQRobotWeCom头文件

#ifndef XQROBOTWECOM_H
#define XQROBOTWECOM_H
#include"XQRobot.h"
#include<QImage>
//企业微信机器人
class XQRobotWeCom :public XQRobot
{
	Q_OBJECT
public:
	//图文信息
	struct Articles
	{
		QString title;//标题,不超过128个字节,超过会自动截断(必填)
		QString description;//描述,不超过512个字节,超过会自动截断(选填)
		QString url;//点击后跳转的链接。(必填)
		QString picurl;//图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图 1068*455,小图150*150。(选填)
	};
	enum PutFileType
	{
		image,//图片
		voice,//语音
		video,//视频
		file//普通文件
	};
	//上传文件返回信息
	struct PutReturnInfo
	{
		int errcode;//错误代码
		QString errmsg;//错误信息
		PutFileType type;//文件类型
		QString media_id;//媒体文件上传后获取的唯一标识,3天内有效
		qint64 created_at;//媒体文件上传时间戳
	};
public:
	XQRobotWeCom(QObject* parent = nullptr);
	~XQRobotWeCom();
	/*
	* @brief  获取当前的钥匙.
	* @retval 钥匙
	* @note
	*/
	inline QString key()const;
	/*
	* @brief  获取当前的url.
	* @retval url
	* @note
	*/
	QString url();
public:
	/*
	* @brief  设置钥匙.
	* @param key:钥匙
	* @retval None
	* @note
	*/
	void setKey(const QString& key);
	/*
	* @brief 发送文本.
	* @param content:发送的文本内容,最长不超过2048个字节,必须是utf8编码
	* @param mentioned_list:userid的列表,提醒群中的指定成员(at某个成员),all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list
	* @param mentioned_mobile_list:手机号列表,提醒手机号对应的群成员(at某个成员),all表示提醒所有人
	* @retval 发送成功返回true
	* @note
	*/
	bool sendText(const QString& content, const QStringList& mentioned_list = {}, const QStringList& mentioned_mobile_list = {});
	/*
	* @brief 发送markdown.
	* @param content:发送的markdown内容,最长不超过4096个字节,必须是utf8编码
	* @retval 发送成功返回true
	* @note
	*/
	bool sendMarkdown(const QString& content);
	/*
	* @brief 发送图片.
	* @param image:图片-最大不能超过2M(超过大小会自动压缩),内部采用发送JPG格式图片
	* @retval 发送成功返回true
	* @note 
	*/
	bool sendImage(const QImage& image);
	/*
	* @brief 发送图文链接.
	* @param articles:图文消息,一个图文消息支持1到8条图文
	* @retval 发送成功返回true
	* @note
	*/
	bool sendArticles(const QList<Articles>&articles);
	/*
	* @brief 发送文件.
	* @param media_id:文件id,通过下文的文件上传接口获取
	* @retval 发送成功返回true
	* @note
	*/
	bool sendFile(const QString& media_id);
	/*
	* @brief 上传文件.要求文件大小在5B~20M之间
	* @param filename:文件名称 -带后缀的名字
	* @param filedata:文件数据,要求文件大小在5B~20M之间
	* @param info:上传文件后返回的信息
	* @retval 发送成功返回true
	* @note
	*/
	bool put(const QString& filename, const QByteArray& filedata, PutReturnInfo& info);
	/*
	* @brief 上传文件.要求文件大小在5B~20M之间
	* @param filename:文件名称-绝对地址或相对地址
	* @param info:上传文件后返回的信息
	* @retval 发送成功返回true
	* @note
	*/
	bool put(const QString& filename, PutReturnInfo& info);
protected:
	void init();
protected:
	QString m_key;//钥匙
};
#endif // !XQRobotWeCom_H

测试代码

XQRobotWeCom Robot;
//这条是显示调试信息发送的json文本,默认不开启,不看的话这行可以不要
Robot.setDebugModel(XQRobot::ShowJson,true);
//这边填写自己机器人的key
Robot.setKey("???");
//发送普通文本
Robot.sendText("这是一条Qt测试信息");
//测试图片
Robot.sendImage(QImage("C:\\Users\\jxy\\Pictures\\新海天.jpg"));
//测试图文
Robot.sendArticles({ {"中秋节礼品领取","今年中秋节公司有豪礼相送","http://www.qq.com","http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"} });
//测试上传文件
XQRobotWeCom::PutReturnInfo info;
if (Robot.put("C:\\Users\\jxy\\Desktop\\群晖桥接网卡.txt", info))
{
	QString media_id = info.media_id;
	Robot.sendFile(info.media_id);
}

企业微信实现效果

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值