Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Telegram Bot in Kotlin

In questa lezione impareremo a realizzare un Telegram Bot in linguaggio Kotlin, soluzione utile nel caso volessimo integrarlo in un'app.
In questa lezione impareremo a realizzare un Telegram Bot in linguaggio Kotlin, soluzione utile nel caso volessimo integrarlo in un'app.
Link copiato negli appunti

Kotlin è un linguaggio
di programmazione scaturito dal mondo Java e ideato da JetBrains, azienda creatrice di alcuni dei maggiori IDE al mondo.
Deve buona parte della sua fama al fatto di essere stato scelto come ambiente preferenziale per lo sviluppo
Android proprio grazie alla sua sintassi moderna,
sintetica ma molto efficace.

In questa lezione, lo utilizzeremo per creare un Telegram Bot e lo faremo grazie alla libreria Kotlin Telegram Bot.
La si potrà installare mediante i vari canali che il mondo Java/Kotlin mette a disposizione come Maven
e Gradle.
In quest'ultimo caso, ambiente molto diffuso per Kotlin, si dovranno seguire due passaggi. Prima si imposterà Jitpack come
repository:

repositories {
    maven { url "https://jitpack.io" }
}

e successivamente si imposterà la libreria tra le dipendenze:

dependencies {
    implementation 'io.github.kotlin-telegram-bot.kotlin-telegram-bot:telegram:x.y.z'
}

Anche utilizzando Maven sarà bene impostare prima Jitpack come repository e successivamente indicare le
coordinate tra le dipendenze del file pom.xml per individuare la libreria. Nell'esempio, il numero
di versione è impostato a x.y.z ma al posto di queste lettere andrà indicato il numero di versione attuale
della libreria, rilevabile sulla pagina GitHub del progetto.

Cosa vogliamo realizzare

Realizzeremo un convertitore di valute tra euro e dollaro sfruttando un tasso fisso che inseriremo nel codice.

Il funzionamento del bot vedrà l'uso di due comandi:

  • /EUR seguito da un importo indicante il numero di euro da convertire in dollari. Ad esempio, "/EUR 180.20" dirà che vogliamo
    sapere a quanti dollari corrispondono 180,20 euro;
  • /USD seguito dal numero di dollari da convertire in euro ("/USD 210.30", ad esempio).

Per creare il bot nel sistema Telegram si seguiranno le istruzioni viste in una lezione precedente che
consisteranno, essenzialmente, in:

  • richiedere al BotFather la creazione del nuovo bot con il comando /newbot e a questo punto ci verrà chiesto
    di indicare nome e id univoco del bot;
  • salvare il token alfanumerico che ci verrà confezionato dal BotFather ed utilizzarlo nel codice come identificativo del nostro Bot

L'esempio

Per realizzare il convertitore di valute, abbiamo scritto il seguente codice:

import com.github.kotlintelegrambot.bot
import com.github.kotlintelegrambot.dispatch
import com.github.kotlintelegrambot.dispatcher.command
import com.github.kotlintelegrambot.dispatcher.text
fun convert(text:String?, to:String): String? {
    val RATE = 1.21f
    var value= text?.split(" ")?.get(1)?.toFloat()
    if (value != null) {
        if (to.equals("USD"))
            value*=RATE
        else
            value/=RATE
    }
    return "${"%.2f".format(value)} $to"
}
fun main(args: Array<String>) {
    val bot = bot {
        token = "TOKEN"
        dispatch {
            command("EUR") {
                val res = convert(message.text, "USD")
                if (res != null) {
                    bot.sendMessage(chatId = update.message!!.chat.id, text = res)
                }
            }
            command("USD") {
                val res = convert(message.text, "EUR")
                if (res != null) {
                    bot.sendMessage(chatId = update.message!!.chat.id, text = res)
                }
            }
        }
    }
    bot.startPolling()
}

All'inizio, utilizziamo import per richiedere alla libreria Kotlin Telegram Bot, le classi
di cui abbiamo bisogno. Fatto ciò, definiamo la funzione convert che useremo per la conversione vera e
propria. Questa riceverà due stringhe in input. La prima sarà il messaggio ricevuto dall'utente dal quale estrarremo i dati
da usare nell'elaborazione. La seconda stringa varrà EUR o USD e servirà a definire il
senso della conversione.

Nel main, viene attivato il meccanismo di polling per la lettura degli aggiornamenti in arrivo. Creeremo un oggetto bot e dovremo stare ben
attenti a fornirgli il token che il BotFather ci ha passato: andrà posizionato dove abbiamo indicato la stringa segnaposto TOKEN.

Notiamo che ci sono due blocchi command. Ognuno di essi è relativo ad uno dei comandi che vogliamo usare ma il loro funzionamento
interno sarà identico: invocheremo convert e con sendMessage restituiremo la risposta all'utente.

Il funzionamento del bot sarà come quello che appare in figura, uno scambio di messaggi dove la nostra applicazione sarà in grado di
effettuare le operazioni di calcolo ricevendo le richieste dell'utente.

Figura 1. Conversione di valuta (click per ingrandire)Conversione di valuta

Queste non sono che le operazioni fondamentali ma, come si può immaginare, non sarà troppo complicato predisporre ulteriori meccanismi
e finalizzare il bot ad altro, semplicemente modificando la funzione che viene invocata per l'elaborazione.

Ti consigliamo anche