не могу отлавить ответ reply кнопка iogram
async def get_address(message: types.Message, state: FSMContext):
await state.update_data(name=message.text)
data = await state.get_data()
querystring = {"query": {data['name']}, "locale": "en_US", "currency": "USD"}
response = requests.get(url=config.URL, headers=config.headers, params=querystring)
data = json.loads(response.text)
for i in data['suggestions'][0]['entities']:
city_name.low_reply.add(city_name.KeyboardButton(text=BeautifulSoup(i['caption'], 'lxml').text))
await message.answer('Уточните, пожалуйста, локацию:', reply_markup=city_name.low_reply) #1
await state.finish()
мне нужно перейти к другой функции, после того как пользователь выберет район. Если после строки, отмеченной #1, вставить еще один message.answer, то сразу выводится сообщение не получив ответа от пользователя. Название района заранее угадать невозможно до этого пользователь выбирает любой город в мире.
Ответы (1 шт):
Автор решения: asuchachigusa
→ Ссылка
class UserInfo(StatesGroup):
Location = State()
Next = State()
@dp.message_handler(state=UserInfo.Location)
async def get_address(message: types.Message, state: FSMContext):
await state.update_data(name=message.text)
data = await state.get_data()
querystring = {"query": {data['name']}, "locale": "en_US", "currency": "USD"}
response = requests.get(url=config.URL, headers=config.headers, params=querystring)
data = json.loads(response.text)
for i in data['suggestions'][0]['entities']:
city_name.low_reply.add(city_name.KeyboardButton(text=BeautifulSoup(i['caption'], 'lxml').text))
await message.answer('Уточните пожалуйста локацию:', reply_markup=city_name.low_reply)
await UserInfo.Next.set()
@dp.message_handler(state=UserInfo.Next)
async def new_func(message: types.Message, state: FSMContext):
await message.answer('next question')
# И в самом конце цепочки - await state.finish()
Чтобы перейти к функции get_address вам нужно прописать await UserInfo.Location.set()