Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Telegram bot на node.js, бесконечная загрузка кнопки.

Ростислав Попов Ученик (195), на голосовании 4 года назад
В боте есть вопрос с кнопками, который прекрасно работает и на сервере отлично обрабатывается, но в самом телеграмме после нажатия крутиться бесконечная ошибка и выдает ошибку "@nameofbot не отвечает. Повторите попытку позже". Но при этом все действия выполнились. Из-за чего такое может быть?
Голосование за лучший ответ
Ярослав Искусственный Интеллект (107841) 5 лет назад
Смотри логи, отлаживай код мидлвэра/обработчика.
На какой ответ ты вообще рассчитываешь, если даже ссылку на код не прикрепил?!
Глад ВалакасУченик (179) 5 лет назад
Для чела что не прикрепил код, слова "отлаживай код мидлвэра/обработчика. " , будут немножко не понятными)
Ярослав Искусственный Интеллект (107841) Ну почему же... термин "мидлвэр" ведь знаком любому, кто писал под ноду (т. к. Экспресс остается библиотекой №1). А "обработчик" и "отладка", совсем уж базовые. Если автор вопроса сам написал бота, а не тупо скопипастил 100% кода из интернетов - то проблема больше в его (автора) человеческой логике, чем в уровне знаний необходимых для вставки пары console.log() в скрипт :]
Ростислав ПоповУченик (195) 5 лет назад
К гитхаб. ком добавь это:
ZosimaQuiz/PBLbot/blob/master/backend/app.js.
Ярослав Искусственный Интеллект (107841) Посмотрел, но там что-то слишком много всего понапихано в коллбэке, визуально не распарсить. С таким кодом только логи писать остается, иначе проблему я думаю не поймать. Начать советую с мелкого кода, где помимо основного каркаса бота будут только кнопки и коллбэк, больше ничего. Если и мини-пример не заработает - будет гораздо проще с ним разобраться, чем с той кашей которая сейчас. А если заработает - добавляешь постепенно куски из своей каши, заодно отрефакторишь ее (там полно повторяющегося кода, и сильно не хватает разделения логики на методы или хелпер-функции).
Дима Миронов Профи (851) 4 года назад
Необходимо отсылать ответ "answerCallbackQuery"
https://core.telegram.org/bots/api#answercallbackquery
// PHP
$this->send('answerCallbackQuery', [
'callback_query_id' => $data['callback_query']['id'],
], false);
Похожие вопросы