type
status
date
slug
summary
tags
category
icon
password
在操作之前首先要有Telgram帐号和一台VPS,VPS要求已配置域名并配置SSL证书以保证信息的安全,并开放对应端口,另外要在Telegram上建立机器人并获取机器人的Token和接收用户的ID,具体的方法可以自行查找。 满足上述条件后便按照以下步骤:
1.在Linux中使用机器人向指定用户发送信息:
采CURL发送POST请求的方式调用机器人向用户发送消息
例如参数如下:
# 机器人TOKEN:
TGBOT_TOKEN: 12345678:ABCDabcd
# 群组ID或私人会话ID
CHAT_ID: 88888888
# 则按照以下格式:
例如:
2.在Linux中搭建WEBHOOK服务配置NGINX反代接收来自用户发给Telgram机器人的信息:
使用Nginx反代是为了搭配SSL证书,当然也有其它的方案,这里只介绍常用方法,以Ubuntu以例
首先搭建一个Webhook服务,先安装依赖:
创建一个Python文件webhook.py,建议保存到/var/www/webhook中,内容如下:
(方案一)
或者:
(方案二)(添加将信息写入到messages.txt文件中)
在方案二中,使用bash读取messages.txt文件最后一行最后一个“:”后面的内容(也就是最新收到的信息,如果内容有换行则直接取最后一行;图像音频等不作处理),可以使用:
tail -n 1 messages.txt | awk -F ':' '{print $NF}'
执行:
或者通过指令将其执行于后台:
在启动时系统会提示建议创建虚拟环境运行,否则会有一些冲突的情况,可以选择执行前添加此项操作(可选):
python3 -m venv venv
source venv/bin/activate
然后我们可以通过下面的指令查询后台运行的状况:
接下来要设置Nginx反代部分,首先进入文件夹/etc/nginx/sites-available/并创建webhook文件(可以无后缀):
将其关联至/sites-enable:
完成后重启Nginx:
以上所有操作完成后,我们便可以设置Telgram的Webhook服务了(以下指令执行一次即可):
注意这里的/webhook要与Nginx中反代的地址相对应
如果返回:
{"ok":true,"result":true,"description":"Webhook is already set"}
则表示执行成功
END
- 作者:VTSE
- 链接:https://vtse.eu.org/article/linux-tg
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。