Telegramm-Bot: Wie sende ich eine Nachricht mit der Inline-Tastatur und verstecke die benutzerdefinierte Tastatur gleichzeitig?

7
  • Schritt 1: Senden Sie dem Benutzer eine Nachricht mit ReplyKeyboardMarkup mit wenigen Schaltflächen ( zum Beispiel ["Yes", "No"] )
  • Schritt 2: Wenn der Benutzer auf eine der Schaltflächen klickt ( zum Beispiel " 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?

    
Alexander Trakhimenok 16.06.2016, 11:19
quelle

6 Antworten

7

Es ist im Moment unmöglich. Telegram Bot API ermöglicht derzeit nur das Senden eines Tastaturtyps: Inline oder einfach (einschließlich KeyboardHide und andere).

    
ihoru 16.06.2016, 16:38
quelle
4

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%     
Mayer Sariggs 23.06.2017 22:16
quelle
3

Aber Sie können zwei Nachrichten senden, die erste würde ReplyKeyboardHide / ReplyKeyboardRemove senden und die zweite würde die Inline-Tastatur senden

    
Kirill 27.01.2017 14:38
quelle
3

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%     
Emad Armoun 01.09.2017 18:46
quelle
3

Setzen Sie die OneTimeKeyboard-Eigenschaft nur auf true,

%Vor%

Sobald die Taste verwendet wird, wird sie nie wieder angezeigt

    
user8876021 02.11.2017 16:53
quelle
1

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%     
user2228544 15.04.2017 06:29
quelle

Tags und Links