简短介绍:
Telegram Search Bot 是一款适用于 XenForo 2.2 / 2.3 的 Telegram 群组搜索机器人插件。群组用户只需要发送 `/s 关键词`,Bot 就会通过 XenForo 官方 API 搜索论坛内容,并将相关标题、摘要和链接返回到 Telegram 群组中。插件不直接读取数据库,配置简单,适合论坛交流群、资源发布群、技术支持群和用户社区使用。
正文:
Telegram Search Bot 是一款为 XenForo 打造的 Telegram 群组搜索插件。
安装后,Telegram 群组成员可以直接在群里发送:
Bot 会调用 XenForo API 搜索论坛内容,并把相关结果返回到群组中。每条搜索结果会包含标题、作者、简短摘要和论坛链接,方便群组用户快速找到站内帖子、资源或相关内容。
需要注意的是,本插件只通过 XenForo REST API 搜索内容,不直接读取数据库表,更适合长期维护和安全使用。
将插件目录完整上传到 XenForo 对应位置:
然后进入 XenForo 后台,在插件页面安装:
进入 XenForo 后台:
需要配置以下项目:
最简单方式:
在返回的 JSON 中找到:
群组 chat_id 通常是负数,超级群一般类似:
将获取到的 chat_id 填入后台配置即可。多个群组用英文逗号分隔。
如果已经设置过 webhook,`getUpdates` 可能不会返回历史消息。可以先临时删除 webhook:
插件默认 Webhook 地址:
如果你的服务器访问 `/telegram-search/ping` 返回 nginx 404,通常说明友好 URL 没有正确转发到 XenForo。
这种情况下可以使用根目录兼容入口:
Telegram Search Bot 是一款适用于 XenForo 2.2 / 2.3 的 Telegram 群组搜索机器人插件。群组用户只需要发送 `/s 关键词`,Bot 就会通过 XenForo 官方 API 搜索论坛内容,并将相关标题、摘要和链接返回到 Telegram 群组中。插件不直接读取数据库,配置简单,适合论坛交流群、资源发布群、技术支持群和用户社区使用。
正文:
插件简介
Telegram Search Bot 是一款为 XenForo 打造的 Telegram 群组搜索插件。
安装后,Telegram 群组成员可以直接在群里发送:
代码:
/s 关键词
Bot 会调用 XenForo API 搜索论坛内容,并把相关结果返回到群组中。每条搜索结果会包含标题、作者、简短摘要和论坛链接,方便群组用户快速找到站内帖子、资源或相关内容。
需要注意的是,本插件只通过 XenForo REST API 搜索内容,不直接读取数据库表,更适合长期维护和安全使用。
核心功能
- 支持 Telegram 群组内使用 `/s 关键词` 搜索论坛内容
- 支持 `/s@BotName 关键词` 格式,适配 Telegram 群组隐私模式
- 通过 XenForo 官方 API 搜索,不直接读取数据库
- 支持限制允许使用的 Telegram 群组 chat_id
- 支持配置 XenForo API Key 和 API User ID
- 支持设置每次返回搜索结果数量
- 支持搜索 thread / post / resource 等内容类型
- 支持只返回公开可见内容
- 支持 Telegram HTML parse mode,返回格式更清晰
- 支持 Webhook Secret 校验,提高接口安全性
- 内置简单频率限制,防止群组内频繁刷搜索
- 错误日志不会记录 Telegram Bot Token 或 XenForo API Key
适合使用场景
- XenForo 论坛官方群
- 资源下载站 Telegram 群
- 技术支持群
- 用户交流群
- 插件 / 主题资源站
- 教程问答群
- 希望把论坛搜索能力接入 Telegram 的站点
安装路径
将插件目录完整上传到 XenForo 对应位置:
代码:
src/addons/CNXF/TelegramSearch/
然后进入 XenForo 后台,在插件页面安装:
代码:
Telegram Search Bot
后台配置
进入 XenForo 后台:
代码:
Setup -> Options -> Telegram Search Bot
需要配置以下项目:
- Telegram Bot Token:由 BotFather 创建 Bot 后提供
- Telegram Webhook Secret:可选,建议填写随机字符串,用于校验 Telegram webhook 请求头
- 允许的 Telegram 群组 chat_id:支持多个,用英文逗号分隔,例如 `-100xxxxxxxxxx,-100yyyyyyyyyy`
- XenForo API Key:用于调用 XenForo REST API
- XenForo API User ID:默认填写 0;如果使用超级用户 API Key,可填写执行搜索的 XenForo 用户 ID,例如管理员用户 ID
- XenForo API Base URL:默认 `https://cnxf.org/api/`
- 每次返回搜索结果数量:默认 5,最大 10
- 搜索类型:默认全部内容,可选 thread / post / resource
- 只返回公开可见内容:建议开启
创建 Telegram Bot
- 打开 Telegram,搜索 `@BotFather`
- 发送 `/newbot`
- 按照提示填写 Bot 名称和用户名
- 保存 BotFather 返回的 Token
- 将 Token 填入 XenForo 后台插件配置
- 把 Bot 拉入目标 Telegram 群组
获取 Telegram 群组 chat_id
最简单方式:
- 先把 Bot 加入目标群组
- 在群里随便发送一条消息
- 浏览器打开以下地址:
代码:
https://api.telegram.org/bot你的BOT_TOKEN/getUpdates
在返回的 JSON 中找到:
代码:
message.chat.id
群组 chat_id 通常是负数,超级群一般类似:
代码:
-100xxxxxxxxxx
将获取到的 chat_id 填入后台配置即可。多个群组用英文逗号分隔。
如果已经设置过 webhook,`getUpdates` 可能不会返回历史消息。可以先临时删除 webhook:
代码:
https://api.telegram.org/bot你的BOT_TOKEN/deleteWebhook
Webhook 地址
插件默认 Webhook 地址:
代码:
https://cnxf.org/telegram-search/webhook
如果你的服务器访问 `/telegram-search/ping` 返回 nginx 404,通常说明友好 URL 没有正确转发到 XenForo。
这种情况下可以使用根目录兼容入口:
代码:
https://cnxf.org/telegram_search_webhook.php
使用建议
- 建议创建专用 XenForo API Key,不要使用全权限管理员 Key
- 建议启用 Webhook Secret,提高接口安全性
- 建议只允许指定 Telegram 群组使用搜索
- 建议先在测试群验证搜索、权限、Webhook 和日志
- 正式使用前,请确认 API 权限最小化,避免无关权限暴露