Я использую AWS Lamba в качестве webhook для всех сообщений, которые приходят к боту. Однако у меня возникла проблема. По какой-то причине обработчик команд лямбда-бота не отвечает на команду с первого раза. У пользователя Telegram нет ответа.
Я приведу и пример:
- Я поставил команду 1. Результат: нет ответа.
- Я поставил команду 2. Результат: ответ на команду 1.
- Я поставил команду 3. Результат: ответ на команду 2
- Я поставил команду 4. Результат: ответ на команду 3
и так далее ...
что не так?
exports.handler = (event, context) => {
// Message
let message;
if (event.body.channel_post && event.body.channel_post.text) {
message = event.body.channel_post.text;
} else if (event.body.message && event.body.message.text) {
message = event.body.message.text;
}
const processCommand = processCommands(message);
// Chat ID
let chatId;
if (event.body.message && event.body.message.chat && event.body.message.chat.id) {
chatId = event.body.message.chat.id;
} else if (event.body.channel_post && event.body.channel_post.chat && event.body.channel_post.chat.id) {
chatId = event.body.channel_post.chat.id;
}
if (chatId) {
processCommand.then((response) => {
const processTelegram = sendMessageToTelegram(chatId, response);
processTelegram.then(() => {
context.succeed();
}).catch(() => {
context.fail();
});
}).catch((error) => {
const processTelegram = sendMessageToTelegram(chatId, error.message);
processTelegram.then(() => {
context.succeed();
}).catch(() => {
context.fail();
});
});
} else {
processCommand.then(() => {
context.succeed();
}).catch(() => {
context.fail();
});
}
return processCommand;
};