今天介绍一个 python 库 —— telethon,使用它我们可以在 Linux 服务器上登录 telegram,可以获取群消息、联系人,以及今天要重点介绍的自动发送消息。
更多的内容可以查看官方文档:https://docs.telethon.dev/en/latest/
1、安装
首先需要有 python 环境,我这里在 Ubuntu 服务器上面演示的,我用的是 python3
pip3 install telethon |
安装成功后可以通过执行下面这个来检查
python3 -c "import telethon; print(telethon.__version__)" |
我目前装的版本是 1.21.1
2、
之后来到浏览器,需要申请 API
https://my.telegram.org/auth?to=apps
填写自己的手机号,前面的 +
我是有填的,不知道不填行不行。点击 next 按钮后我们的 telegram 客户端就会收到一条验证消息,验证码是英文字母,还挺长的。
之后需要创建一个 application ,要填的就是 App title 和 Short name 这两个而已,主要只能 英文字母和数字
,不可以用下划线,并且要在 5-32 个字符之间。可以参考这么填。
App title: firstApp
Short name: 12345
完成后可以看到 api_id、api_hash
这两个,把它们保存下来。需要将它们填写到下面的脚本里。
3、
from telethon import TelegramClient |
完成后保存,例如我这里保存为 tele-test.py ,然后通过 python3 tele-test.py
来执行这个脚本。它会让我们输入手机号码,因为这是我们第一次在陌生的设备上登录,之后在 telegram 客户端里我们会收到一个验证码,输入后就可以登录了。(此处手机号前面的 + 我就没填了)
Please enter your phone (or bot token): 123456789 |
那么这样我们在服务器上面登录了,并且此时也已经成功地发送了一条消息。就是给 me
这个用户发送 Hello, myself!
这条消息。其实就是将这句话,保存到 “保存的消息”里面而已。如果你想发送给其他人,以及修改内容,就修改一下脚本的内容就行。
里面的 anon 是缓存的密钥,第一次执行脚本后,我们输出手机号和验证码,完成后脚本所在文件夹就会出现一个 anon.session
文件,下次再执行这个脚本就不用输入手机号验证了。你可以将它移动到其它地方,但是记得也修改一下脚本里的内容,如将 acon 改为 /opt/acon
。
4、
然后想要实现定时执行的话,需要用到 crontab ,可以轻松实现每天定时发送消息给某个用户。
如果想让发送时间有些变化的话,可以在 python 里面加入 time 和 random
import time |
这样会随机暂停 5 到 200 秒,因此每次发送消息的时间就不同了。