如何搭建私有的Telegram Bot推送服务器 本文累计 1911 字, 最后更新时间:2022年01月09日 ### 0x00 环境为 Debian8.9 ### 0x01 下载/Clone仓库代码 git clone https://github.com/Fndroid/tg_push_bot.git cd tg_push_bot ### 0x02 创建Sqlite3数据库 bot.db 需要先装有sqlite3 apt-get install sqlite3 // bot.db sqlite3 bot.db sqlite> CREATE TABLE users (chatId int unique, chatToken text unique); sqlite> .quit ### 0x03 创建配置文件config.js // config.js https = {} bot = {} ui = {} https.domain = '' // 域名 https.privateKey = 'xxx.key' // Key文件 https.certificate = 'xxx.crt' // CSR文件 bot.token = 'https://api.telegram.org/bot{token}/' // BotFather返回的Token,以/结尾 ui.startHint = '' // 用户发送/start时返回的内容,%s表示用户唯一URL ui.userNotExistHint = '' // 用户不存在时的返回内容 ui.httpsTestHint = 'hello from nodejs with https'ui.errorHint = '' // 错误提示 module.exports = { https: https, bot: bot, ui: ui } 配置域名及https: 可先在freenom注册免费域名,之后在https://freessl.cn/申请证书, 注意,按照下图填写,按照流程走,申请成功后会出现三个文本框,不要管他直接选择下载证书。 ![Image.png][1] 会得到一个压缩包,将其保存好。 ![Image.png][2] 将这两个文件上传至程序目录下(与package.json同目录) 会注意到,这里只有.pem和.key ,然鹅config.js中所需证书是.crt ,其实没什么影响的,直接填写.pem就行。 ### 0x04 安装Node.js环境 1.安装Nodejs,参考Download Node (二进制安装食用风味更佳~) 2.执行`cnpm install`安装依赖(与package.json同目录下),部分包使用npm安装会出现奇奇怪怪的问题,cnpm一步到位。 $ npm install -g cnpm --registry=https://registry.npm.taobao.org 3.执行`cnpm install -g pm2`安装pm2模块 4.执行`pm2 start server.js`启动服务端 设置Bot webhook地址访问 > https://api.telegram.org/bot{token}/setWebhook?url=https://{domain}/inlineQuery 检查webhook是否正常 > https://api.telegram.org/bot{token}/getWebhookInfo 安全配置: 1.修改webhook为加密后字符串,防止被猜解 2.bot检验接受到的chat_id是否与master的id一致,否则无响应并向master发送报警信息。 3.限制访问ip,只接受tg服务器的请求 > https://core.telegram.org/bots/webhooks#the-short-version [1]: https://hack.best/usr/uploads/2022/01/3737491307.png [2]: https://hack.best/usr/uploads/2022/01/168541408.png
Comments | NOTHING