Abbiamo spesso parlato riguardo alla creazione di bot, con un esempio concreto in ruby, utilizzando però getUpdates, e non setWebhook.
getUpdates è una funzione molto utile per chi si trova alle prime armi, ma può risultare fastidiosa da utilizzare, perché siamo noi che dobbiamo chiedere a Telegram di ricevere gli updates. Con setWebhook invece è possibile fare in modo che Telegram ci avvisi degli updates senza far nulla. Infatti, non appena il Bot riceve un messaggio, Telegram manderà l’avviso alla nostra applicazione.
Quindi la nostra applicazione dovrà restare in ascolto. Ma invece che ciclare all’infinito, aspetteremo semplicemente.
Utilizzando telegramAPI e Sinatra, ecco l’esempio proposto su Github:
require 'telegramAPI' require 'sinatra' require 'json' token = "******" api = TelegramAPI.new token post "/#{token}" do status 200 # Get Telegram Data request.body.rewind data = JSON.parse(request.body.read) # Output data on stdout p data # Return an empty json, to say "ok" to Telegram "{}" end r = api.setWebhook("https://YOUR_URL/#{token}").to_json puts "setWebhook Result:#{r}"
Il token come al solito lo dovrete chiedere al @BotFather, mentre al posto di “p data” potete mettere tutta la logica del vostro Bot, per esempio potete creare una funzione “process(data)” che venga invocata al posto di “p data”, e poi inserire la logica del bot dentro a tale funzione. Insomma, rimaneggiate il codice come più vi piace!
Per questa breve guida è tutto, alla prossima!
Seguiteci anche su Facebook, Google Plus, Tumblr, Twitter e Telegram, per restare sempre in contatto con noi e con le nostre guide.