Skip to content

Vico-7/Telegram-chat-bot

Repository files navigation

Telegram Chat Bot

背景

为应对 Telegram 私信骚扰问题,我在初期采用不设置用户名并结合私信机器人的方式屏蔽骚扰。Telegram 推出付费私信功能后,我立马启用了该功能并设置用户名,同时提供机器人供陌生人使用。然而,诈骗和骚扰信息仍通过机器人发送,因此开发本机器人以进一步提升防护能力。

功能概述

本机器人基于Telegram Webhook API构建,部署于私有服务器,数据存储在私有数据库中,具备高实时性、高效性和安全性。操作设计以用户友好为核心,大多数功能可通过点击完成。通过 getWebhookInfo API 查看机器人待处理更新和 Webhook 服务器 IP。以 ID 为标识符设定对话目标,管理员设定目标后可直接发送消息,无需手动回复,支持几乎所有类型的消息。

人机验证

  • 高难度验证机制

    • 题目类型
      • 分数运算:分子分母均为质数,分数不可化简。
      • 指数运算:指数绝对值不为 1。
      • 开根运算:根号下数字不可直接平方根。
    • 验证流程
      1. 用户需完成验证题目,答错将自动编辑消息,展示新题目及选项。
      2. 验证通过后,机器人向管理员发送通知。
    • 关闭验证
      • 支持关闭人机验证,管理员可通过按键或指令快捷开启/关闭验证。

      • 关闭后,用户通过 /start 可直接向管理员发送消息。

      • 未验证用户可使用机器人,但验证状态不变。若管理员重新开启验证,用户需完成验证才能对话。

      • 适用场景:适用于短期内多人使用机器人,如审核频道发布审核车或二手频道投稿售卖信息。

      • 效果展示

        关闭验证展示
        验证题目展示
  • 示例截图

    验证题目界面 1 验证题目界面 2
    验证题目1 验证题目2
    验证结果通知 1 验证结果通知 2
    通知1 通知2

用户管理

管理员可通过按键或指令便捷地使用管理功能:

  • 统一功能按键

    功能按键
    功能按键
  • 通过 bot_commands 快捷使用指令

    指令快捷方式
    指令快捷方式

操作友好

为提升操作便捷性,几乎所有场景均集成Inline Keyboard功能:

  • 验证通过后:提供快捷拉黑和切换对话按钮。
  • 黑名单管理:列出的黑名单用户支持一键解除拉黑或重新拉黑。
  • 拉黑通知:拉黑成功通知附带解除拉黑按键,方便快速操作。

未完待续

更多强大功能,敬请部署后亲自体验。

部署

前置准备

为确保部署顺利,请提前准备以下内容:

  • 一台安装了运维面板的的非中国大陆服务器:用于托管和管理机器人服务。未测试中国大陆服务器是否可行,大概不可行。
  • 一个域名:添加一条指向你的服务器IP的A记录,用于配置 Webhook 和访问服务。(Webhook不支持ipv6)
  • 如果你的服务器位于中国,那么你的webhook地址的解析IP应该属于非屏蔽Telegram服务的国家和地区

部署步骤

  1. 下载源代码

    • 获取项目源代码以进行部署。

    • 示例截图

      源代码下载界面
      源代码下载
    • 或者在发布页直接下载压缩包

  2. 参考部署文档

About

一个功能强大的Telegram私聊转发机器人

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages