ReplyKeyboardMarkup
mit wenigen Schaltflächen ( zum Beispiel ["Yes", "No"]
) Yes"
), möchte ich eine Nachricht mit Inline-Tastatur anzeigen und die in Schritt 1 gesendeten Schaltflächen ausblenden. Ist es möglich zu tun? Die Nachricht hat nur eine einzelne reply_markup
-Eigenschaft und kann entweder InlinkeKeyboardMarkup
oder ReplyKeyboardHide
sein. Die einzige Möglichkeit, die ich sehe, besteht darin, 2 Nachrichten zu senden (zuerst, um Tastatur und 2nd mit Inline-Tastatur zu verbergen), aber das wäre nicht die beste Lösung aus Sicht der Benutzererfahrung. Ich bin OK, um einige Anfragen zu machen, möchte aber nur eine Nachricht für den Benutzer sichtbar haben.
Irgendwelche Gedanken?
Ich nehme an, Sie möchten, dass die Schaltfläche verschwindet, sobald sie gedrückt wird:
%Vor%Sie können es sogar reaktionsfähiger machen, indem Sie Folgendes hinzufügen:
%Vor%Es gibt keine logische Lösung. aber da ist ein Trick. Sie können eine Nachricht senden, um die vorherige Tastatur zu entfernen, dann diese Nachricht entfernen und schließlich die nächste Nachricht mit der Tastatur senden.
%Vor%Setzen Sie die OneTimeKeyboard-Eigenschaft nur auf true,
%Vor%Sobald die Taste verwendet wird, wird sie nie wieder angezeigt
Sie verwenden inlineKeyboard besser sowohl für yes / no als auch für die vorhergehende Tastatur, die nach dem Drücken von yes oder no angezeigt werden soll. Auf diese Weise können Sie die Ja / Nein-InlineKeyboard-Nachricht bearbeiten und eine neue Tastatur anzeigen.
Sie können das inlineKeyboard senden und indem Sie den Parameter callBackQuery.Data überprüfen, können Sie die gesendete Nachricht erneut bearbeiten und stattdessen Ihre neue Nachricht anzeigen.
unten ist eine Beispielaktualisierungsnachricht json:
%Vor%Wenn der Benutzer auf "Ja" oder "Nein" klickt, erhalten Sie eine Aktualisierungsnachricht. Basierend auf der obigen Aktualisierungsnachricht sind die Chatid und MessageID bekannt, so dass der Editiercode unter Verwendung der c # Telegram.Bot-Bibliothek wie folgt aussieht:
%Vor%Tags und Links telegram-bot