@Xliteee

Как передать перменную из функции aiogram?

Я начинающий кодер решил написать своего бота на аиограме и столкнулся с ошибкой во время передачи переменной из функции. В интернете я нашел объяснения что нужно использовать FSM для этой проблемы. Но как в данную память переместить уже готовую переменную со значением, а не ждать ответа от пользователя, ответ не нашел ответ не нашел

def extract_unique_code(text):
    # Extracts the unique_code from the sent /start command.
    return text.split()[1] if len(text.split()) > 1 else None
    
@dp.message_handler(commands=["start"], state="*")
async def user_registration(message: types.Message):
    #Выделение id рефера
    unique_code = extract_unique_code(message.text)
    await ProfileStatesGroup.unique_code_true.set()
    print (unique_code)
    if unique_code:
        #если есть id рефера
        await bot.send_message(message.from_user.id, "Введите сообщение для отправки:")
        await ProfileStatesGroup.anonymessage.set()
        
    else:
        #если в ссылке нет id рефера
        pass

@dp.message_handler(state=ProfileStatesGroup.anonymessage)
async def answer_anonymessage(message:types.Message, state: FSMContext):
    answer = message.text
    await bot.send_message(message.from_user.id, "Отправлено!")
    print (unique_code)
    await bot.send_message(unique_code, "Вам пришло анонимное сообщение")
    await bot.send_message(unique_code, answer)


речь идет о переменной unique_code
  • Вопрос задан
  • 825 просмотров
Пригласить эксперта
Ответы на вопрос 1
Torkusz
@Torkusz
Самоучка python
from aiogram.dispatcher.filters.state import State, StatesGroup

class Form(StatesGroup):
   unique_code  = State()

await state.update_data(unique_code=int(message.text)) # Это если есть id реферала

unique_code = data['unique_code'] # Тут мы получаем id реферала


Вот пример с официальной документации
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы