本站现已支持了Telegtam
机器人消息通知了。分别在有人回复你的主题,有人在评论里提到了你,你的评论被人点赞/点踩的时候可以通过TG的机器人立即推送给你。
基本原理
-
第一步通过设置TG机器人的webhook地址到论坛指定的地址上,这样用户在tg机器人发送了消息,论坛能接收到,这一步的主要作用是绑定tg用户和论坛用户,拿到tg用户的chat_id。
-
第二步就是有消息推送时,通过tg的机器人api通知出去,让用户收到消息,如果论坛的服务器在国内,需要使用CF反代下tg的机器人api接口,境外的机器则不需要。
下面说下操作方法,分别针对管理员和普通用户。
管理员端
前置条件:
自己已经通过@BotFather申请了专属于自己的tg机器人,并拿到了bot token,网上教程很多,大家自行搜索。
需要论坛部署所在的机器能够正常访问api.telegram.org
,如不能正常访问的,需要使用CF反代下tg的机器人api接口,自行搜索教程。
我这里使用的cf反代代码如下:(记得修改第一行,改为只能反代你自己的bot)
language
const whitelist = ["/bot123456"];
const tg_host = "api.telegram.org";
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
function validate(path) {
for (var i = 0; i < whitelist.length; i++) {
if (path.startsWith(whitelist[i]))
return true;
}
return false;
}
async function handleRequest(request) {
var u = new URL(request.url);
u.host = tg_host;
if (!validate(u.pathname))
return new Response('Unauthorized', {
status: 403
});
var req = new Request(u, {
method: request.method,
headers: request.headers,
body: request.body
});
const result = await fetch(req);
return result;
}
1、进入后台设置,首先填上论坛的地址,带http或者https的,最后的/不要。
2、进入系统设置,最底下打开通知设置,
TG API反代地址
如果能正常访问tg api的可以忽略,否则必填。- 启用Telegram机器人
- 填入前置条件1里的机器人token
- 填入机器人的名称,比如本论坛的discussionNotifyBot机器人。
- 点击保存
- 保存完毕后,点击复制webhook地址按钮,在浏览器里打开,如果一切正常,你会看到如下返回:
{ "ok": true, "result": true, "description": "Webhook is already set"}
管理端的设置到这里就结束了。
用户端
点击右上角的个人头像,进入个人详情页面,如果管理员正常开启了Telegram机器人,而你又没有绑定过tg的话,顶部应该能看到如下提示,点击点我复制指令
复制好机器人指令,打开顶部提示的tg机器人,把指令复制进去。
如果机器人回复恭喜你,操作成功,接下来有消息这里就会通知你!
那么就代表你绑定tg成功了,接下来有消息就会实时通过tg推送给你了。