Ich erstelle einen Bot im TriviaBot-Stil für Telegramm und verwende dafür Node.js. Im Moment habe ich Probleme, die Antworten der Benutzer auf mein Quiz zu erfassen, um festzustellen, ob der Benutzer die Frage richtig oder falsch beantwortet hat. Unten ist ein Code:
bot.onText(/\/quiz/, function (msg) {
var chatId = msg.chat.id;
var text = quizdata.one.msgtxt;
var opts = {
reply_to_message_id: msg.message_id,
reply_markup: JSON.stringify({
keyboard: quizdata.one.keyboard,
one_time_keyboard: true
})
};
bot.sendMessage(chatId, text, opts);
//NEED TO CAPTURE THE USER RESPONSE AND REPLY TO THEIR MESSAGE ACCORDINGLY
});
Lösung des Problems
HINWEIS: Telegram würde jede asynchrone Funktion abschneiden, Sie sollten ein separates Modul zum Abhören jeder eingehenden Interaktion mit der Schaltfläche erstellen. Sie könnten globales Array verwenden, um kleine Daten zu speichern, um sie für andere Module, die Sie benötigen, zurückzugeben.
Es ist keine gute Idee, alle Ihre Befehle in den Index js zu setzen.
wenn Sie die von der Tastatur callback_data hören möchten. Erstellen Sie einfach eine neue Zeile, um alle eingehenden angeklickten Schaltflächen abzuhören.
bot.on("callback_query", (msg) => {
if (msg.data === "your_keyboard_callback_data") {
// do whatever you want
}
})
Für mehr Freigabeknotentelegramm api
Tut mir leid, wenn meine Antwort dafür zu spät ist, aber ich hoffe, meine kann anderen Leuten helfen
Keine Kommentare:
Kommentar veröffentlichen