将WORDPRESS评论自动推送到 TG 方便及时查看

瓦工BIGGERBOX-20-1024

通过代码将Wordpress中评论直接推送到Telegram上,方便及时查看,操作简单。

这段时间申请了一些搬瓦工MINIBOX邀请码,是通过评论区留言发送的。但是不能一直盯着后台进行刷新,回复时效受了很大影响。这是就想到了自动发送评论到TG,让TG发出声音进行提示,以便及时操作。好在申请Telegram Bot不是很难,代码也相对简单,记录下操作过程。

一、创建机器人

打开 Telegram,搜索 BotFather,并与其对话。输入 /newbot 来创建一个新机器人。BotFather 会要求你为机器人命名并为其创建一个用户名(用户名需要以“bot”结尾,例如 myawesomebot)。创建完成后,BotFather 会提供给你一个 API Token,用于与 Telegram 机器人进行交互。这部分比较简单,按提示操作就可以了。

将WORDPRESS评论自动推送到 TG 方便及时查看

二、获取聊天 ID

我们要将Wordpress评论的内容推送到Telegram 群组Bot上,需要机器人的TG ID号。

我们通过访问一个链接来获取你机器人的ID。

打开浏览器,访问以下 URL(替换其中的 YOUR_BOT_API_TOKEN 为你从 BotFather 获取到的 API Token):

https://api.telegram.org/botYOUR_BOT_API_TOKEN/getUpdates

比如你的机器人api是 1234:abcd ,你就访问 https://api.telegram.org/bot1234:abcd/getUpdates 。执行完成后,你将会看到 "ok":true 字样。

然后我们在 Telegram 中找到你的机器人并发送一条消息(例如:“Hello”),再次访问刚才的链接,你将看到一个包含你发送的消息的 JSON 响应。在浏览器查看会比较乱,稍微整理下后,查找 chat 对象中的 id 字段,这就是你的机器人聊天 ID。比如:

{
    "ok":true,"
    result":[
        {
            "update_id":12345678,
            "message":{	
                "message_id":2,
                "from":{
                    "id":95279527,
                    "is_bot":false,
                    "first_name":"John",
                    "username":"John",
                    "language_code":"zh-hans"
                },
                "chat":{
                    "id":95279527,
                    "first_name":"John",
                    "username":"John",
                    "type":"private"
                },
                "date":1732850285,
                "text":"Hello"
            }
        }
    ]
}

其中 95279527 就是你的机器人ID号。

三、WORDPRESS中写入代码

我们通过wordpress相关钩子就可以很方便的将wordpress的评论相关信息推送到TG了。一种方法是通过相关插件设置,一种是自己写入代码。不太喜欢用插件,虽然wp插件功能强大,但现在wp插件基本都有广告,而且弄出一大堆需要你付费的项目,而且会每次运行到插件时就会检查有没有付费,徒增MYSQL的查询负担。

将评论推送到TG,功能比较简单,我这里是除非评论触碰到黑名单关键字,都是直接显示的,无需审核。所以只需将函数挂钩到评论提交的动作上就可以了。将以下代码放到Wordpress 主题的 function.php 函数中就可以实现相关功能。服务器需启用 cURL 的功能,一般服务器都会有,可在wp的 工具 > 站点健康 查看。

/**
 * 评论发送到tg。
*/

function send_comment_to_telegram($comment_ID, $comment_approved, $commentdata) {
    // 只处理已批准的评论(即 comment_approved 为 1)
    if ($comment_approved != 1) {
        return;
    }

    // 设置 Telegram 机器人 API Token 和聊天 ID
    $bot_token = '1234:abcd';  
    $chat_id = '95279527'; 

    $comment_author = $commentdata['comment_author'];
    $comment_content = $commentdata['comment_content'];

    $post_title = get_the_title($commentdata['comment_post_ID']);
    $post_url = get_permalink($commentdata['comment_post_ID']);
    
    $message = "新评论:\n";
    $message .= "评论者: $comment_author\n";
    $message .= "评论内容: $comment_content\n";
    $message .= "文章标题: $post_title\n";
    $message .= "文章链接: $post_url\n";

    $telegram_api_url = "https://api.telegram.org/bot$bot_token/sendMessage";
    
    $params = array(
        'chat_id' => $chat_id,
        'text' => $message
    );

    $ch = curl_init($telegram_api_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    
    $response = curl_exec($ch);
    curl_close($ch);

    // 调试:输出 Telegram API 响应
    // error_log("Telegram API response:\n" . $response);

}

add_action('comment_post', 'send_comment_to_telegram', 10, 3);

以上代码中 Telegram 机器人 API Token 和机器人聊天 ID 改为自己的,写入到 function.php 的合适位置并保存,我们随便查看几个网页以便该功能生效,这时我们在文章评论下,TG bot就应该弹出消息提醒。

这样我们就可以很及时的在TG 看到新的评论信息,还是很实用的。只要我们不将改BOT拉进群里,就只能你一个人看到。

技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/web/2089.html

(0)

BandWh.com 折腾之路●一起折腾

上一篇 2024年11月17日 13:21
下一篇 2024年12月23日
瓦工BIGGERBOX-20-1024

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

请文明评论!