Передача данных между двумя устройствами через телеграм бота
Разрабатываю бота в телеграме на AIOGram. Вкратце - морской бой, но в телеграме. Нужно каким-то образом организовать мультиплеер, поочерёдно перекидываясь данными между двумя пользователями, которые заранее объединились в пару по ходу программы. Проблема состоит лишь в том, каким образом сделать саму передачу.
Для начала решил облегчить саму задачу и попробовал написать эхо-бота, который пересылает сообщение от одного пользователя к другому. Получилось примерно так
import logging
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from api_token import API_TOKEN
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(name)s - %(message)s")
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot, storage=MemoryStorage())
first_id = ''
second_id = ''
class Order(StatesGroup):
take_id = State()
double_echo = State()
async def take_id(message: types.Message, state: FSMContext): # получение айди второго пользователя
global first_id
first_id = message.from_user.id
await state.update_data(sec_pl_id=message.text)
await Order.next()
async def double_echo(message: types.Message, state: FSMContext):
global second_id
user_data = await state.get_data()
second_id = user_data['sec_pl_id']
flag = False
if not flag: # попытка сделать поочерёдное перекидывание сообщениями
flag = True
await bot.send_message(second_id, message.text)
else:
flag = False
await bot.send_message(first_id, message.text)
return
def register_handlers(dp: Dispatcher):
dp.register_message_handler(take_id, state=Order.take_id)
dp.register_message_handler(double_echo, state=Order.double_echo)
register_handlers(dp)
executor.start_polling(dp, skip_updates=True)
Закономерно вышло, что и тут ничего не работает. До конца не понял, каким именно образом это должно работать, возможно я не понял самой сути работы программы. Поэтому открыт к жёсткой критике. (З.Ы. не бейте плиз)