Files
tg_code/text/获取token.py
Administrator 37e9d4038c gfregfregfr
2025-11-12 12:50:39 +08:00

98 lines
2.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import asyncio
from urllib.parse import unquote
from telethon.tl.functions.channels import JoinChannelRequest
from telethon.tl.functions.messages import RequestWebViewRequest
from telethon import TelegramClient
from telethon.tl.types import InputPeerUser
from models.tg_phone_devices import TgPhoneDevices
async def create_telegram_client(tg_info):
"""
创建并配置 Telegram 客户端
"""
client = TelegramClient(
fr"C:\sessions\{tg_info.phone}",
api_id=tg_info.api_id,
api_hash=tg_info.api_hash,
device_model=tg_info.device_model,
system_version=tg_info.system_version,
app_version=tg_info.app_version,
system_lang_code=tg_info.system_lang_code,
lang_code=tg_info.lang_code,
)
return client
async def get_token(client):
# 调用 RequestAppWebView传递所需的参数
bot_name_lst = [
# "BlumCryptoBot",
# 'DepinSimBot'
# 'OfficialBananaBot',
"tomowalletbot"
]
for bot_name in bot_name_lst:
# bot_name = "DepinSimBot"
bot = await client.get_entity(bot_name)
if bot_name == "DepinSimBot":
channel_name = 'depinsim'
channel = await client.get_entity(channel_name)
# 加入频道
await client(JoinChannelRequest(channel))
# 发送消息(示例:开始对话)
await client.send_message(bot, '/start')
peer = InputPeerUser(bot.id, bot.access_hash)
web_view = await client(
RequestWebViewRequest(
peer=peer,
bot=peer,
platform='android',
from_bot_menu=False,
url='https://tomotg.tomo.inc/',
)
)
auth_url = web_view.url
print(auth_url)
query = unquote(string=unquote(string=auth_url.split('tgWebAppData=')[1].split('&tgWebAppVersion')[0]))
print(query)
return True
async def set_link(client):
# 检查用户是否已授权
if await client.is_user_authorized():
# 使用邀请码启动机器人对话
# 'bot_username' 是机器人的用户名,通常以 'bot' 结尾
# 'invite_code' 替换为你的邀请码,如果不需要邀请码则省略此参数
bot_username = 'TimeFarmCryptoBot'
invite_code = '1ll25QcyYLilP5NQF'
# https://t.me/TimeFarmCryptoBot?start=1ll25QcyYLilP5NQF
await client.send_message(bot_username, f'/start {invite_code}')
async def main(tg_info):
# 创建 Telegram 客户端
client = await create_telegram_client(tg_info)
await client.connect()
await get_token(client)
await client.disconnect()
if __name__ == '__main__':
tg_info = TgPhoneDevices().get_or_none(
TgPhoneDevices.phone == "8617120751158",
)
asyncio.run(main(tg_info))