Я разрабатываю систему с использованием пирограммы, где несколько пользователей могут аутентифицировать свои собственные учетные записи Telegram непосредственно через Telegram Bot, отправляя свой номер телефона и код проверки через чат - без использования терминала. После входа в систему каждый сеанс начинает контролировать конкретный канал и сохранять все новые сообщения в базе данных MongoDB. Оттуда я могу перечислить каналы и копировать сообщения без проблем. сеанс; < /p>
Затем бот начинает контролировать отобранный пользователь канал. /> await message.Reply («Успешно проверить!») # Эта строка никогда не достигается < /p>
Что я хочу знать:
Кто -нибудь когда -нибудь создавал что -то похожее? Повесьте Afer_in () в этом сценарии? (Пользовательские боты со 100% аутентификацией через BOT, без терминала) < /p>
import pyrogram
from pyrogram import Client, filters
from pyrogram.enums import ChatMembersFilter
from pyrogram.errors import SessionPasswordNeeded, PhoneCodeInvalid, FloodWait
from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, ChatMemberUpdated
app = Client(
f'{Client_bot}',
api_id=getenv('TELEGRAM_API_ID'),
api_hash=getenv('TELEGRAM_API_HASH'),
bot_token=getenv(bot_token),
)
# retornar_usuario e escrever_usuario #receives and writes to the database
@app.on_message(filters.command("auth"))
async def auth_command(client, message):
id = message.chat.id
phone_number = retornar_usuario(id, "Usuario", "Telefone")
if not phone_number:
await message.reply("No phone number found.")
return
session_name = f"{SESSION_DIR}/{id}"
user_client = Client(
session_name,
api_id=getenv('TELEGRAM_API_ID'),
api_hash=getenv('TELEGRAM_API_HASH'),
phone_number=phone_number,
no_updates=False
)
escrever_usuario(id, 'Usuario', 'Config', 'code')
await message.reply("Please send the verification code you received on Telegram.")
try:
if os.path.exists(f"{session_name}.session"):
os.remove(f"{session_name}.session")
await user_client.connect()
code = await user_client.send_code(phone_number)
user_data[id] = {
"phone_number": phone_number,
"phone_code_hash": code.phone_code_hash,
"client": user_client,
"channels": [],
"active": False,
"connected": True
}
except Exception as e:
await message.reply(f"Error: {str(e)}")
await user_client.stop()
@app.on_message()
async def Query(client, message):
id = message.chat.id
messages = message.text
Config = retornar_usuario(id, 'Usuario', 'Config')
if Config == 'code':
user_client = user_data[id]["client"]
phone_number = user_data[id]["phone_number"]
phone_code_hash = user_data[id]["phone_code_hash"]
try:
await user_client.sign_in(phone_number, phone_code_hash, messages)
user_data[id]["active"] = True
# This is where it hangs
await user_client.start()
await message.reply("Authenticated successfully!")
escrever_usuario(id, 'Usuario', 'Config', 'authenticated')
except Exception as e:
await message.reply(f"Authentication error: {str(e)}")
await user_client.stop()
Если кто -то здесь построил что -то подобное или имеет предложения для стабильной структуры (используя асинсио, многопроцестрой, потоки или другие шаблоны), я бы очень признателен за вашу помощь!
Заранее!
Я разрабатываю систему с использованием пирограммы, где несколько пользователей могут аутентифицировать свои собственные учетные записи Telegram непосредственно через Telegram Bot, отправляя свой номер телефона и код проверки через чат - без использования терминала. После входа в систему каждый сеанс начинает контролировать конкретный канал и сохранять все новые сообщения в базе данных MongoDB. Оттуда я могу перечислить каналы и копировать сообщения без проблем. сеанс; < /p> Затем бот начинает контролировать отобранный пользователь канал. /> await message.Reply («Успешно проверить!») # Эта строка никогда не достигается < /p> Что я хочу знать: Кто -нибудь когда -нибудь создавал что -то похожее? Повесьте Afer_in () в этом сценарии? (Пользовательские боты со 100% аутентификацией через BOT, без терминала) < /p> [code]import pyrogram from pyrogram import Client, filters from pyrogram.enums import ChatMembersFilter from pyrogram.errors import SessionPasswordNeeded, PhoneCodeInvalid, FloodWait from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, ChatMemberUpdated
except Exception as e: await message.reply(f"Authentication error: {str(e)}") await user_client.stop() [/code] Если кто -то здесь построил что -то подобное или имеет предложения для стабильной структуры (используя асинсио, многопроцестрой, потоки или другие шаблоны), я бы очень признателен за вашу помощь! Заранее!
Внезапно мой предыдущий код больше не работает с 3 мая 2023 года. Я ничего намеренно не менял. Но мой телеграмм-бот больше не отправляет сообщения.
Я думаю, это либо некоторая несовместимость из-за обновления через anaconda-navigator, которое я...
Я новичок в создании ботов, поэтому я создал очень простой бот Telegram, и он отлично работает, но не могу понять, как заставить бота отправлять сообщения каждые n минут или n часов при запуске команды /start_auto. p>
Я нашел обходной путь с помощью...
Я хочу создать бота, который исключает пользователей из группы на основе определенного условия (не имеет значения).
Моя проблема: я нашел функцию, которая исключает пользователей ( Bot.ban_chat_member () из python-telegram-bot ), но выкидывает их на...
У меня есть бот для Telegram, написанный с использованием python-telegram-bot, который работал нормально, но через несколько недель, когда я запускаю скрипт, кажется, что он не может найти некоторые библиотеки и модули.
Например, в моем коде широко...
Я пытаюсь запустить бот Telegram, используя библиотеку python-telegram-bot (версия >= 20) в асинхронном режиме. Проблема в том, что когда я запускаю опрос, все приложение блокируется. Я пробовал использовать как многопоточность, так и...