实现功能 | 成员函数 |
---|---|
发送普通文本 | sendText |
发送Markdown文本 | sendMarkdown |
发送图文 | sendArticles |
源代码
XQRobotDingDing源代码 里面还依赖一些其他类,在里面都可以找到,推荐整个克隆下来看方便
XQRobotDingDing头文件
#ifndef XQROBOTDINGDING_H
#define XQROBOTDINGDING_H
#include"XQRobot.h"
//钉钉在线文档https://open.dingtalk.com/document/robots/custom-robot-access
//钉钉机器人
class XQRobotDingDing:public XQRobot
{
Q_OBJECT
public:
XQRobotDingDing(QObject* parent = nullptr);
~XQRobotDingDing();
/*
* @brief 获取令牌.
* @retval 令牌
* @note
*/
inline QString token()const;
/*
* @brief 获取密钥.
* @retval 密钥
* @note
*/
inline QString secret()const;
/*
* @brief 获取当前的标志.
* @retval 标志
* @note
*/
QString sign();
/*
* @brief 获取当前的url.
* @retval url
* @note
*/
QString url();
public:
/*
* @brief 设置令牌.
* @param token:令牌
* @retval None
* @note
*/
void setToken(const QString& token);
/*
* @brief 设置密钥.
* @param secret:密钥
* @retval None
* @note
*/
void setSecret(const QString& secret);
/*
* @brief 发送文本.
* @param content:发送的文本内容
* @param atMobiles:at人的手机号
* @param atUserIds:at人的userid
* @param isAtAll:是否at所有人
* @retval 发送成功返回true
* @note
*/
bool sendText(const QString& content, const QStringList& atMobiles = {}, const QStringList& atUserIds = {}, bool isAtAll = false);
/*
* @brief 发送图文链接.
* @param title:发送的标题
* @param text:发送的文本内容
* @param messageUrl:跳转链接
* @param picUrl:图片地址
* @retval 发送成功返回true
* @note
*/
bool sendArticles(const QString& title, const QString& text, const QString& messageUrl, const QString& picUrl= QString());
/*
* @brief 发送markdown.
* @param title:发送的标题
* @param text:发送的markdown内容
* @param atMobiles:at人的手机号
* @param atUserIds:at人的userid
* @param isAtAll:是否at所有人
* @retval 发送成功返回true
* @note
*/
bool sendMarkdown(const QString& title, const QString& text, const QStringList& atMobiles = {}, const QStringList& atUserIds = {}, bool isAtAll = false);
protected:
void init();
//添加at相关参数
void addAt(QJsonObject& parent, const QStringList& atMobiles = {}, const QStringList& atUserIds = {}, bool isAtAll = false);
protected:
QString m_token;//令牌
QString m_secret;//密钥
qint64 m_timestamp = 0;//当前时间戳,单位是毫秒
};
#endif // !XQRobotDingDing_H
测试代码
XQRobotDingDing Robot;
//这条是显示调试信息发送的json文本,默认不开启,不看的话这行可以不要
Robot.setDebugModel(XQRobot::ShowJson, true);
//设置令牌,改成自己的
Robot.setToken("???");
//设置密钥改成自己的
Robot.setSecret("???");
//发送普通文本
Robot.sendText("这是一条Qt测试信息");
//发送图文链接
Robot.sendArticles("中秋节礼品领取", "今年中秋节公司有豪礼相送", "http://www.qq.com", "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png");
//发送Markdown文本
Robot.sendMarkdown("杭州天气", "#### 杭州天气 @150XXXXXXXX \n > 9度,西北风1级,空气良89,相对温度73%\n > ![screenshot](https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png)\n > ###### 10点20分发布 [天气](https://www.dingtalk.com) \n");