一、简介
基于TG API以及Python的第三方包Telethon,部署到VPS上,每天定时上车
二、准备工作
1、已开启API的TG号(下面会讲述如何开启TG API)
2、国外VPS一台(或能魔法上网的软路由)
3、Python 3.5+
三、开启TG API
申请网址:https://my.Telegram.org
1、输入手机号登录,注意验证码会发送至TG客户端而不会以短信形式发送
2、登录进去后选“API development tools”
3、根据下图提示输入申请信息
4、开通完成后,保存api_id、api_hash两个值
四、安装Python与Telethon (如已符合PY版本的,可跳过此步骤)
1、安装Python
检查VPS上Python的版本信息,查询命令:python --versiON 或 python3 --version。若版本号小于3.5.0,则需安装新版Python
这里以Debian/Ubuntu系统为例,编译安装Python 3.8.10,并替换python3、pip3的环境变量。请根据自己VPS的实际情况配置环境
apt-get update
apt-get install build-essential -y
apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev -y
apt-get install libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev -y
apt-get install libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev -y
apt-get install ca-certificates -y
apt-get install libsqlite3-dev -y
wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz
tar -Jxvf Python-3.8.10.tar.xz
cd Python-3.8.10
./configure
make && make install
2、安装Telethon
pip3 install telethon
五、自动签到脚本(Python版)
1、复制以下代码,根据需要修改api_id,api_hash和发送的机器人和消息,保存为tgsign.py
(代码如下)
# -*- coding: utf-8 -*-
import os
import time
from telethon import TelegramClient, events, sync
api_id = [0123456, 6543210] #输入api_id,一个账号一项
api_hash = ['0123456789abcdef0123456789abcdef', 'abcdef0123456789abcdef0123456789'] #输入api_hash,一个账号一项
session_name = api_id[:]
for num in range(len(api_id)):
session_name[num] = "id_" + str(session_name[num])
client = TelegramClient(session_name[num], api_id[num], api_hash[num])
client.start(3)
client.send_message("@JD_ShareCode_Bot", '/farm 1234567890123456') #第一项是机器人ID,第二项是发送的文字
time.sleep(3)
client.send_message("@JD_ShareCode_Bot", '/pet 1234567890123456') #可以一个py发送多次消息,复制粘贴代码编辑即可,可适当调整延时
time.sleep(5) #延时5秒,等待机器人回应(一般是秒回应,但也有发生阻塞的可能)
client.send_read_acknowledge("@luxiaoxun_bot") #将机器人回应设为已读
print("Done! Session name:", session_name[num])
os._exit(0)
2、先运行一次脚本,输入python3 tgsign.py回车,根据提示填写手机号与验证码。
成功后Telethon会在当前文件夹下生成.session会话文件,以后就不用再输入验证码了(如无法生成会话文件,请检查Python内置库sqlite3是否已正常安装)
3、设置定时任务(多种方式)
- 输入crontab -e进入定时任务编辑器,添加:(根据实际情况调整,如python路径、脚本文件存放路径等)
0 6 * * * cd /root && /usr/local/bin/python3 tgsign.py
2、青龙面板,添加任务,自己设置定时即可
3、宝塔
【站长补充】
教程首发:https://hostloc.com/thread-864401-1-1.html (站长已经联系大佬获授权)
投稿玩家注意:本站珍重原创,如使用他人教程,请附上原始链接。
mark一下。
感谢分享,让我好好学习一下
谢谢,分享学习了
谢谢,分享学习了
mark一下。
感谢分享,插眼学习
瞅瞅瞅瞅,mark一手
我直接在青龙docker容器里搞。第一次运行并无弹出登录信息,请问是什么问题?root@qinglong:/ql $ python3 /ql/data/scripts/tgsign.py Traceback (most recent call last): File "/ql/data/scripts/tgsign.py", line 11, in client.start(3) File "/usr/local/lib/python3.10/site-packages/telethon/client/auth.py", line 128, in start else self.loop.run_until_complete(coro) File "/usr/local/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete return future.result() File "/usr/local/lib/python3.10/site-packages/telethon/client/auth.py", line 184, in _start
补上: await self.send_code_request(phone, force_sms=force_sms) File "/usr/local/lib/python3.10/site-packages/telethon/client/auth.py", line 433, in send_code_request result = await self(functions.auth.SendCodeRequest( File "/usr/local/lib/python3.10/site-packages/telethon/client/users.py", line 30, in call return await self._call(self._sender, request, ordered=ordered) File "/usr/local/lib/python3.10/site-packages/telethon/client/users.py", line 83, in _call result = await future telethon.errors.rpcerrorlist.PhoneNumberInvalidError: The phone number is invalid (caused by SendCodeRequest) Segmentation fault
可以了经GPT修改后正常上车了,但添加任务到青龙面板还是提示手机验证无法正常读取会话文件。但终端下python3 /ql/data/scripts/tgsign.py是正常读取的。求解!!!
66666666厉害
打卡升级
先看看,不明白的地方再问
谢谢分享,学习了