Не работает answer_callback_query
У меня есть хендлер который обрабатывает нажатия по инлайновой кнопке:
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
print(call.message.chat.id)
print(call.data)
if call.message:
data = call.data
data = data.split(" ")
id = data[0]
vote = data[1]
cursor.execute("SELECT voted FROM petition_void WHERE id="+str(id))
voted = cursor.fetchone()
print(voted)
if voted[0] is None:
cursor.execute("UPDATE petition_void SET voted='"+str(call.message.chat.id)+" 1' WHERE id="+str(id))
if vote == "yes":
cursor.execute("SELECT yes FROM petition_void WHERE id="+str(id))
count = cursor.fetchone()[0]
cursor.execute("UPDATE petition_void SET yes="+str(int(count) + 1)+" WHERE id="+str(id))
if vote == "no":
cursor.execute("SELECT no FROM petition_void WHERE id="+str(id))
count = cursor.fetchone()[0]
cursor.execute("UPDATE petition_void SET no="+str(int(count) + 1)+" WHERE id="+str(id))
bot.answer_callback_query(callback_query_id=call.message.chat.id, show_alert=True, text="Success")
Сам хендлер обрабатывает всё нормально, но когда я хочу ответить алертом, телеграмм возвращает:
Bad Request: query is too old and response timeout expired or query ID is invalid
В чем может быть причина?
Ответы (1 шт):
Автор решения: Pain Worsnop
→ Ссылка
Пофиксил.
callback_query_id=call.message.chat.id
меняем на
callback_query_id=call.id
и идем читать документацию.