登录
  • 人们都希望被别人需要 却往往事与愿违
  • 在软件'可重用'之前先得'可用'@Ralph Johnson (设计模式四人帮之一)

使用Telegram Bot接受和回复WordPress评论

建站运维 Benny小土豆 7635次浏览 1710字 15个评论
文章目录[显示]
这篇文章在 2020年01月23日16:34:58 更新了哦~

 

当你的博客收到了一条评论的时候,想要回复,应该怎么做呢?打开浏览器,打开后台,等待加载,回复……哦对了,我还有一个步骤,就是不在家的话还得开一个全局代理

这怎么行,我都要懒死了。生气??


没错的,历经1958天,我的博客被DNS污染啦。

假如能够用telegram bot完成这种回复操作就好了!那么是当然的了。

使用Telegram Bot接受和回复WordPress评论

 

使用Telegram Bot接受和回复WordPress评论

 

原理

Basic Auth

插件会为WordPress开启Basic Auth,因此要用复杂的密码,非常复杂的那种,并且https哦!

WordPress Hook

WordPress博客在新添加一条评论的时候,会触发N多钩子,其中有一个钩子叫comment_post,这个钩子被触发后,就会给调用并给相应的回调函数三个参数$comment_ID, $comment_approved, $comment_obj$comment_obj就是评论者留下的信息了,大概是如下结构的数组

 

使用Telegram Bot接受和回复WordPress评论

根据post_id comment_id等,使用WordPress自带的函数就能生成完整的评论信息。

之后调用Telegram bot的REST API,就可以发送消息给用户了。

Telegram

当回复机器人消息时,会直接向WordPress的REST API发起评论添加请求。当然啦,你注意到了机器人消息里的id:123,456了吗?这个就是小小的标识符哦。

这个是用golang实现的机器人,轮询模式。其实我知道这个是可以用Telegram webhook完成的,直接写在插件里用PHP实现。更进一步,可以做到不开启Basic Auth,直接用WordPress的接口甚至是直接插入数据库。不过为了练习嘛……

使用方式

基本可以如下归纳

  1. 安装插件
  2. 创建bot、获取自己的user id
  3. 插件中添加相应的设置
  4. 编辑配置,并运行bot后端
  5. 可以了。

注意事项

服务器在国内

WordPress的服务器上,想办法开个代理(目前只支持http代理),然后插件设置里加入配置信息;

Telegram的服务器上,也想办法开个代理,然后设置这样两条环境变量

export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;

或者干脆上proxychains试试。

proxychains貌似只能代理dynamically linked 的程序,golang的二进制是statically linked的哎

Basic Auth

Basic Auth就是在HTTP请求头里加上base64编码之后的认证信息。优点是简单方便,易于实现,缺点很多。

但是有一点是肯定的,在www这个层面上,不走TLS的登录,都是耍流氓。

使用Telegram Bot接受和回复WordPress评论

全程TLS,啥都看不到。

使用Telegram Bot接受和回复WordPress评论

未TLS,底裤?都看光了

机器人配置与命令行参数

{
"username": "admin",
"password": "admin",
"url": "http://localhost/",
"token": "907J6Tw",
"uid": "23231321",
"admin": 1,
"tail": "本评论由Telegram Bot回复~❤️"
}

-c指定配置文件路径,默认使用当前目录下的config.json

-f强制运行,哪怕是http的……

-c file set configuration file (default "config.json")
-f force to run even on http sites.
-h this help
-v show version and exit

适配其他博客程序

其实没啥好适配的……因为基本上要重写的。

只要能够找到相应的hook,在评论之后触发一个事件,那么就可以了。???

开源地址

开源地址

为了更好的偷懒,付出成倍的精力?

————zuiyu

然后就这么水了一波?????

 


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/wp-tgbot.html
喜欢 (21)
分享:-)
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论(代码和日志请使用Pastebin或Gist)
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(15)个小伙伴在吐槽
  1. 其实可以加一个更换tg api网址的选项,现在有不少人都反代了tg的网址
    GAted02022-02-17 11:00 回复
    • 说的有道理哦!
      Benny小土豆2022-02-25 21:29 回复
  2. 请教一下:评论触发钩子后,评论数据发给你的服务器,然后你手机上有个常驻的bot使用轮询方式一直去服务器上查询有没有新的评论数据?or 时不时主动打开手机上的 bot 查看? 有没有办法在手机熄屏情况下实时(或者接近实时)收取新的评论数据?
    vrworking2021-02-17 10:53 回复
    • 是bot ,触发了之后会调用telegram bot api
      --本评论由Telegram Bot回复~❤️
      Benny小土豆2021-02-17 10:54 回复
      • 哈哈,忘了你手机安装了telegram这个茬了。。。
        vrworking2021-02-17 11:01 回复
        • 😂……
          --本评论由Telegram Bot回复~❤️
          Benny小土豆2021-02-17 11:02
  3. 哈哈哈网站一直放在书签栏,今天发现打不开了(我平时是pac模式),然后刚刚全局才看到原来土豆网站被污染了
    易北2020-01-30 11:23 回复
    • 是的,所以加到hosts里,或者自己加到pac里吧。gfwlist更新真是太难了
      --本评论由Telegram Bot回复~❤️
      Benny小土豆2020-01-30 11:24 回复
  4. 我是搜那个墙教程来到你这的,最近肺炎弄得欢,做好防护措施。可以来新品葱交流。
    猎人老粉2020-01-25 02:00 回复
    • 感谢关心。你也是,注意防护
      --本评论由Telegram Bot回复~❤️
      Benny小土豆2020-01-25 11:11 回复
  5. 使用 DoH 的我并没有发现被墙了
    tom2020-01-19 21:50 回复
    • 被墙的方式是DNS污染,DoH自然会拿到正确的解析啦
      --本评论由Telegram Bot回复~❤️
      Benny小土豆2020-01-19 21:53 回复
      • DoH 已经不行了,升级到 SNI 了。
        tom2020-01-24 21:49 回复
  6. 我来试试大佬的机器人
    弦上韫玉2020-01-19 11:58 回复
    • 哈哈哈,那么我来评论给你呀
      --本评论由Telegram Bot回复~❤️
      Benny小土豆2020-01-19 11:58 回复