Come creare un Bot Telegram con Altervista — parte 4

Comandi inline? Un gioco da ragazzi.

Ora che abbiamo visto come creare il guscio del nostro bot, come impostare i comandi e come personalizzare il guscio del nostro bot vediamo come impostare i comandi inline.

I comandi inline sono quei comandi che possono essere richiamati dall’utente in qualsiasi momento senza neanche aver avviato il bot, direttamente dalla tastiera mentre invia un messaggio, in qualsiasi chat, gruppo o canale.

Un esempio di messaggio inline

AltervistaBot supporta i bot inline. Per abilitare i nostri bot ad eseguire comandi inline dobbiamo prima di tutto farlo su @BotFather digitando /setinline.

Poi, selezioniamo il nostro bot ed inviamo lo scopo dell’inline che viene visualizzato accanto al nome del nostro bot quando lo digitiamo (quello che nel video appare come Search Gif).

Per una limitazione del framework, non si terrà conto di ciò che scrive gli utenti ma appariranno automaticamente dei risultati indipendentemente da ciò che si scrive.

Appariranno quindi così:

Procediamo quindi a creare il nostro comando inline.

Apriamo in modalità modifica il file inline.php dove vediamo già degli esempi preimpostati.

array(
'type' => 'article',
'id' => 'kakfieokakfieofo',
'title' => 'Invia messaggio...',
'description' => "Premi qui 1",
'message_text' => "Questo appare: testo 1",
'parse_mode' => 'Markdown'
),

Il type deve rimanere sempre article (non ne esistono altri)

L’id è un testo casuale che identifica in modo univoco il comando inline e per questo più è casuale (lettere scritte a caso) meglio è.

Il title è il titolo, la parte superiore e meglio evidenziata (che nell’immagine è “Invia messaggio”)

La description è la descrizione del comando, che esce più piccola sotto il titolo. (Nell’immagine è “premi qui 1”)

Il message_text è quello che viene inviato quando si clicca un comando inline. Come vediamo dalla breve gif qui sotto il messaggio risulta inviato dal nostro profilo e sopra viene indicato via @usernamedelbot

Breve gif che mostra l’invio di un messaggio inline

Il message_text può essere formattato in modo particolare, utilizzando il Markdown. La stringa parse_mode ci consente di indicare, infatti, il modo nel quale vogliamo formattare il message text. Possiamo scegliere tra Markdown (quello già indicato) o HTML . Trovate qui la guida su come formattare. Per esempio, per ottenere del testo in grassetto con il markdown ci basta metterlo tra due asterischi (*testo*) mentre per ottenerlo in corsivo lo dobbiamo mettere tra due underscores (_testo_). Per l’HTML, invece, dobbiamo utilizzare i comandi tipici dell’HTML. Al link che vi ho indicato prima trovate la guida ufficiale di Telegram su come formattare.

Facendo un esempio concreto, se volessi creare un comando inline che ha per titolo “Ciao”, per descrizione “Clicca qui!” e per testo “Entra nel gruppo: telegram“ farei (inventandomi un ID casuale):

array(
'type' => 'article',
'id' => 'daojdsasdjasdjads',
'title' => 'Ciao',
'description' => "Clicca qui!",
'message_text' => "*Entra nel gruppo*: _telegram_",
'parse_mode' => 'Markdown'
),

Vi ricordo, prima di salutarci, di inserire il tutto prima della parentesi finale, appena sotto //altre righe eventuali (anche se avete cancellato le precedenti vi consiglio di lasciarlo per comodità).

Esattamente lì sotto, così come vi ho fatto vedere e come c’è scritto negli esempi

Se avete domande, non esitate a scrivermele nei commenti. Spero che questa ultima parte della guida vi sia piaciuta. Tra qualche giorno pubblicherò un ultimo articolo riepilogativo con i link a tutte le guide.

NOTA: Abbiamo trattato ampiamente delle funzioni di questo framework (certo, potrà essermene sfuggita qualcuna) ma potrebbero sempre uscire a breve degli aggiornamenti che vadano a risolvere alcune problematiche e molto probabilmente questi aggiornamenti potrebbero modificare alcune delle procedure elencate in questa serie di guide. In questo caso, pubblicherei comunque un articolo che spiega la nuova procedura oppure aggiungerei alla guida stessa una nota.

<<<Parte precedente

INDICE

Parte successiva>>>


Articolo pubblicato sotto licenza CC-BY-SA 4.0, tutto il codice elencato appartiene a Bruninoit e non è sotto licenza libera.