Telegram Bot: Come impostare tastiere dinamiche

In questo articolo vediamo come impostare delle tastiere dinamiche al nostro custom plugin (creato seguedo questo tutorial).
Nel tutorial precedente avevamo creato il comando /start, dove si dava il benvenuto all’utente con il seguente comando

if ( $text == '/start') {
telegram_sendmessage( $telegram_user_id, start());
}

arrivati a questo punto possiamo spingerci un po’ oltre alla semplice risposta e creare una tastiera dove raggruppare alcuni comandi in modo tale da agevolare e indirizzare i nostri utenti, sempre nelle faq messe a disposizione da Marco troviamo il comando
telegram_sendmessage( $telegram_user_id, ‘Hello from the other side!’, telegram_build_reply_markup( ‘11,12,13;21,22’, true ));
la prima parte è già stata analizzata in precedenza ora vediamo la parte a noi necessaria per la tastiera
telegram_build_reply_markup( ‘11,12,13;21,22’, true )

la funzione da utilizzare è telegram_build_reply_markup i valori che andiamo a passare sono i comandi e il tipo di permanenza da assegnare alla tastiera che stiamo trasmettendo

  1. comandi: i comandi devono essere raggruppati tra apici, nell’esempio presente nelle faq sono ‘11,12,13;21,22’. Si puo’ notare che oltre ai comandi, che per semplicità sono stati indicati con dei numeri, ci sono dei simboli “virgola” e “punto-virgola” questi ultimi hanno delle funzioni ben precise, la virgola divide i comandi in colonne mentre il punto-virgola crea una nuova riga, nell’esempio è stata creata una tastiera composta da due righe, nella prima ci saranno 3 colonne mentre nella seconda due colonne.
  2. la permanenza tastiera puo’ assumere due valori true o false (default)
    1. con i valore true la tastiera viene mantenuta fino a quando non viene inviata una nuova tastiera
    2. con il valore false la tastiera inviata viene mantenuta fino a quando l’utente non interagisce nuovamente con il bot

Dopo quando detto vediamo come implementare questa nuova funzione nel nostro plugin

Da questo comando

if ( $text == '/start') {
telegram_sendmessage( $telegram_user_id, start());
}

Passiamo a quest’altro

if ( $text == '/start') {
telegram_sendmessage( $telegram_user_id, start(), telegram_build_reply_markup( 'comando1,comando2;/start', true ));
}

Voglio portare l’attenzione al nome assegnato al comando nella tastiera in quanto News è diverso da news quindi se la vostra stringa risulta essere

if ( $text == '/start') {
telegram_sendmessage( $telegram_user_id, start(), telegram_build_reply_markup( 'news,circolari;/start', true ));
}

il comando risponde a news – circolari e /start.

I menù creati nelle tastiere dinamiche possono comprendere anche comandi creati dal pannello Admin -> Telegram -> Comandi.