Avatar
本站已支持了tg消息实时通知,欢迎尝试
1
分享
426
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)

javascript 复制代码
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地址按钮,在浏览器里打开,如果一切正常,你会看到如下返回:
    json 复制代码
    {  "ok": true,  "result": true,  "description": "Webhook is already set"}

管理端的设置到这里就结束了。

用户端

点击右上角的个人头像,进入个人详情页面,如果管理员正常开启了Telegram机器人,而你又没有绑定过tg的话,顶部应该能看到如下提示,点击点我复制指令复制好机器人指令,打开顶部提示的tg机器人,把指令复制进去。

alt
title

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

alt
title
Avatar
2 个月前
0
0

😁

Avatar
2 个月前
0
0

@jerry 这条收到了吗

Avatar
jerry楼主mod
2 个月前
0
0

@Akii #2 你看看有收到消息吗

Avatar
buge热心群众
2 个月前
0
0

😁

Avatar
jerry楼主mod
2 个月前
0
0

@buge #4 老哥你要这个干啥啊,上传本地那还要映射文件目录,小白完全不会啊。

Avatar
buge热心群众
2 个月前
0
0

😁

Avatar
jerry楼主mod
2 个月前
0
0

@buge #6 是的,小白不会的,多一个配置就会困难多一些。当然可以弄成选填,麻烦一些而已。

Avatar
buge热心群众
2 个月前
0
0

😁

Avatar
jerry楼主mod
2 个月前
0
0

@buge #4 这俩功能加上了这程序就完美了吗,哈哈

Avatar
2 个月前
0
0

@jerry #9
😄不完美,还要附件上传,积分购买机制,用户组,分组可见,节点可见机制

Avatar
jerry楼主mod
2 个月前
0
0

@Akii #10 pr提起来啊老板,最近怎么懈怠了,都没pr了。

Avatar
2 个月前
0
0

@jerry #11 最近在忙工作,都没怎么弄了😭,我倒是想加个多管理员和服主,私信这个我都不清楚数据库要怎么做表,我就没瞎搞了,其他功能我倒是觉得挺完善了

Avatar
jerry楼主mod
2 个月前
0
0

@Akii #12 楼上提的上传头像和私信我已经加上了,下个版本就有了,再看看有没有别的还需要增加的吧。

目前功能基本都完善了,包括邮件注册,重置密码都有了,就剩下推广了。

Avatar
2 个月前
0
0

@jerry #13 我去,大佬这么肝
其实我是觉得作为一个交流类定义的论坛,目前的功能是已经到头了,就是看使用途中还有什么不方便需要优化的了

上面老哥说的功能可以归为资源类论坛了,资源类论坛涉及的东西太多了,我不认为就当前nuxt和docker部署方式能够满足,环境变量一多,docker部署就要疲于奔命了

Avatar
buge热心群众
2 个月前
0
0

😁

Avatar
buge热心群众
2 个月前
0
0

😁

Avatar
2 个月前
0
0

@buge #15 你还是没明白我的意思,就目前nuxt这个框架,做不了dz那么重的东西的,就像作者的moments,最后还是换成了php

Avatar
jerry楼主mod
2 个月前
0
0

@buge #16 没遇到,我这里黑暗模式下刷新还是黑暗模式,没有跳转亮色模式。
@Akii #17 是的,附件就算了吧,v2 ns都没有这个吧

Avatar
2 个月前
0
0

@Akii #12 支持!!!!

Avatar
buge热心群众
2 个月前
0
0

😁

Avatar
jerry楼主mod
2 个月前
0
0

@buge #20 嗯 正有此意.后面加上.