logo NodeSeekbeta

电报telegram api挂机教程

众所周知,86经常收不到电报验证码,这就需要有一台设备一直挂机以防退出之后无法登陆。
找了个教程,可以利用官方API挂机,刚好也把闲置小鸡利用起来

准备工作:
1.一台已经登录telegram的设备(手机或电脑都可以)
2.python 3.10以上
3.debian/ubuntu vps

步骤:
STEP 1: 官网申请api_id和api_hash

前往网站 my.telegram.org
输入手机号(需带+号)点击 Next
电报会收到一串神秘字符(验证码),填入 点击 Next
看到三个选项 点击第一个 “API delevopment tools”
随便填写信息,title和short name至少5个字符 提交
保存好 api_id和api_hash,

切记:api_id和api_hash 请严格保密,切勿泄露

STEP 2. 根据Python脚本创建session
Session 就是会话,获取Session就相当于登录一次
先安装第三方库

pip3 install -U tgcrypto pyrogram termcolor pyfiglet telethon

复制下列代码,保存为m.py(名字随意)

from pyrogram import Client
from telethon.sync import TelegramClient
from telethon.sessions import StringSession
from termcolor import colored, cprint
from pyfiglet import figlet_format

def main():
    while True:
        cprint(colored(figlet_format('Telegram', "smslant"), "cyan", attrs=['bold']))
        cprint(colored("Session generator\n", "magenta", attrs=['bold']))
        cprint("[p] Pyrogram\n[t] Telethon", "yellow")
        opt = input(colored("Choose your option: ", "green")).lower()
        if "p" in opt:
            cprint("You've selected pyrogram", "magenta")
            APP_ID = int(input(colored("Enter APP ID here: ", "green")))
            API_HASH = input(colored("Enter API HASH here: ", "green"))
            with Client(":memory:", api_id=APP_ID, api_hash=API_HASH) as app:
                app.storage.SESSION_STRING_FORMAT=">B?256sQ?"
                session_str = app.export_session_string()
                if app.get_me().is_bot:
                    user_name = input(colored("Enter the username: ", "green"))
                    msg = app.send_message(user_name, session_str)
                else:
                    msg = app.send_message("me", session_str)
                msg.reply_text(
                    "⬆️ This String Session is generated using https://tgsession.infotelbot.com \nPlease subscribe @InFoTelGroup ",
                    quote=True,
                )
                cprint("please check your Telegram Saved Messages/user's PM for the StringSession ", "yellow")
            break

        elif "t" in opt:
            cprint("You've selected Telethon", "magenta")
            APP_ID = int(input(colored("Enter APP ID here: ", "green")))
            API_HASH = input(colored("Enter API HASH here: ", "green"))
            with TelegramClient(StringSession(), APP_ID, API_HASH) as client:
                session_str = client.session.save()
                if client.is_bot():
                    user_name = input("Enter the username: ")
                    msg = client.send_message(user_name, session_str)
                else:
                    msg = client.send_message("me", session_str)
                msg.reply(
                    "⬆️ This String Session is generated using https://tgsession.infotelbot.com \nPlease subscribe @InFoTelGroup "
                )
                cprint("please check your Telegram Saved Messages/User's PM for the StringSession ", "yellow")
            break
            
        else:
            cprint("Invalid option try again", "red")
        

if __name__ == "__main__":
    main()

上述代码来自 https://replit.com/@ErichDaniken/Generate-Telegram-String-Session#main.py 可自行复制粘贴
执行脚本,输入 api_id 和 api_hash 再输入电话号码(需带+号)然后输入收到的验证码 有密码的话还要输入密码
脚本如果执行成功,Session字符串会发送到电报个人收藏夹
同样的:Session字符串请严格保密,以免痛失账号,后悔莫及

STEP 3. Python挂机脚本
仿照第二步,保存运行该脚本,脚本应该会输出你 Telegram 服务通知的最后一条消息,即验证码
当你下次登录的时候,不用再通过短信而是通过该脚本获取验证码
(再登录最好是修改一下密码,再生成新session 毕竟安全第一)

from telethon import TelegramClient, events
import logging
from telethon.sessions import StringSession
from telethon.tl.types import InputMediaPhoto,InputMediaPhotoExternal
logging.basicConfig(format='[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s', level=logging.WARNING)
APP_ID = <你的APP ID>
API_HASH = <你的APP HASH>
SESSION = <你的SESSION>
client = TelegramClient(StringSession(SESSION), APP_ID, API_HASH)
#client = TelegramClient(StringSession(SESSION), APP_ID, API_HASH,proxy=("socks5", '127.0.0.1', 10808))
#如果你需要使用代理,那么请去掉上面那一行的注释,并注释掉上上行。代理配置请自行修改,本文不再赘述。
async def main():
    entity = await client.get_entity(777000)
    async for message in client.iter_messages(entity,1):
        print(message.raw_text)
with client:
    client.loop.run_until_complete(main())

将上述脚本的对应内容换成你的API ID, API HASH 和 SESSION,后两个要加上双引号。
下面是一个伪示例:

APP_ID = 12345678
API_HASH = "d84caca3caca4835abece79d4d16c57d"
SESSION = "XXXXXXXXXXXXXXXXX"

Session有效期最长是一年,但是可以通过运行该脚本刷新你的上线时间,保证session一直可用。
实际上,你在电报 设置->设备那里 可以看到 有一台设备 是有登录的。
最后就是写一个定时任务来定时执行脚本,以实现挂机。

教程来自 SheepChef Blog
作者太啰嗦,稍作修改
xhj021

12
  • 也可以挂到安卓模拟器或者电脑装个绿色版tg

  • 好的 绑定 xhj020

  • 会不会封号 xhj001

  • mark xhj016

  • 不太妥当,有几率所有设备登出,session也会失效

  • 学到了

  • 绑定

  • 注意:会增加封号风险,我有几个号,啥都没干,api登上立马封号

  • 绑定

  • @duckduckgo #8 稍微养养就可以了,就是要注意不要频繁登录下线。现在天天拿着自动签到一些东西

12

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有62517位seeker

🎉欢迎新用户🎉