Avatar
本站支持TG消息推送,欢迎品尝
分享
58
2 个月前

本站现已支持了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机器人,把指令复制进去。
alt

如果机器人回复恭喜你,操作成功,接下来有消息这里就会通知你!那么就代表你绑定tg成功了,接下来有消息就会实时通过tg推送给你了。

alt
title