给Typecho添加 有评论通知到QQ 的功能
简介
前文有
利用QQ机器人在有WordPress评论时QQ消息通知这篇文章介绍了如何利用QQ机器人在WordPress评论时通过QQ消息进行通知。文章提供了具体的代码和使用方法,并指出了需要修改的部分。同时,文章还提供了作者的QQ机器人号码和API链接。
个人看IM的时间比邮件的时间长,所以就还是使用QQ接收通知
基于 GO-CQhttp 项目
也可以使用插件实现
Typecho插件CommentsByQQ修改版这是一个基于Typecho插件CommentsByQQ修改的插件,用于通过QQ通知评论消息。原作者的插件QQ机器人已经无法使用,因此作者自己搭建了一个基于go-http的QQ机器人。使用时只需添加QQ机器人153985848为好友,并在后台设置中填写接收消息的QQ号即可。插件的下载地址为https://blogcdn.asbid.cn/2022/09/28/1664332031.zip。
使用
修改主题 functions.php
在 function themeConfig($form) {
下添加
$qqboturl = new Typecho_Widget_Helper_Form_Element_Text('qqboturl', NULL, 'https://bot.asbid.cn', _t('QQ机器人API,保持默认则需添加 2280858259 为好友'), _t('基于cqhttp,有评论时QQ通知'));
$form->addInput($qqboturl);
$qqnum = new Typecho_Widget_Helper_Form_Element_Text('qqnum', NULL, '80116747', _t('QQ号码'), _t('用于接收QQ通知的号码'));
$form->addInput($qqnum);
最后添加以下代码
function notifyQQBot($comment) {
$options = Helper::options();
// 检查评论是否已经审核通过
if ($comment->status != "approved") {
error_log('Comment is not approved.');
return;
}
// 获取配置中的QQ机器人API地址
$cq_url = $options->qqboturl;
// 检查API地址是否为空
if (empty($cq_url)) {
error_log('QQ Bot URL is empty. Using default URL.');
$cq_url = 'https://bot.asbid.cn';
}
// 获取QQ号码
$qqnum = $options->qqnum;
// 检查QQ号码是否为空
if (empty($qqnum)) {
error_log('QQ number is empty.');
return;
}
// 如果是管理员自己发的评论则不发送通知
if ($comment->authorId === $comment->ownerId) {
error_log('This comment is by the post owner.');
return;
}
// 构建消息内容
$msg = '「' . $comment->author . '」在文章《' . $comment->title . '》中发表了评论!';
$msg .= "\n评论内容:\n{$comment->text}\n永久链接地址:{$comment->permalink}";
// 准备发送消息的数据
$_message_data_ = [
'user_id' => (int) trim($qqnum),
'message' => str_replace(["\r\n", "\r", "\n"], "\r\n", htmlspecialchars_decode(strip_tags($msg)))
];
// 输出调试信息
error_log('Sending message to QQ Bot: ' . print_r($_message_data_, true));
// 初始化Curl请求
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "{$cq_url}/send_msg?" . http_build_query($_message_data_, '', '&'),
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => 0
]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
error_log('Curl error: ' . curl_error($ch));
} else {
error_log('Response: ' . $response);
}
curl_close($ch);
}
Typecho_Plugin::factory('Widget_Feedback')->finishComment = 'notifyQQBot';
完成之后在主题设置处设置QQ机器人的API 和 QQ号码
×
如果觉得文章对你有帮助,可以请作者喝杯咖啡 ☕️


复制链接https://www.imsun.org/archives/1649.html
复制成功!
王云子
这个我以前也弄过,还弄过什么tg通知,微信通知,但是似乎好像没什么大用,哈哈哈
老孙
还是有用的, 我一直都挂着呢
肖寒武
这个可以,比邮件方便一点。
老孙
对吧,我也觉得更方便些