@@_MagicMike Un piccolo contributo alla promozione del tuo canale per l'aiuto che mi hai dato. Grazie insegnante. 🙏 Colui che condivide la conoscenza rende migliore la vita dell'umanità.😊 bravo, bravissimo! Bis!!! 👏👏👏 Attendiamo nuovi video. 🙏
Ciao, complimenti per la spiegazione, faresti un video sull'integrazione del bot telegram con le inlinekeyboard per simulare un'agenda di appuntamenti in google sheets ?
Ciao Riccardo, grazie del feedback 🙂 Relativamente alla tua richiesta, si tratta di qualcosa che riguarda più una progettazione specifica piuttosto che un tutorial sull'uso di funzionalità. Dal punto di vista tecnico i concetti da utilizzare sono i medesimi spiegati nel video, da quello operativo la questione è invece molto più ampia. Se vuoi mostrare un calendario cliccabile questo richiede di essere costruito, esistono librerie in rete tuttavia si basano principalmente su python, che esula da Google Apps Script. Generare una serie di bottoni cliccabili con i giorni del mese è fattibile (le parentesi quadre nell'oggetto JSON sono le righe mentre quelle graffe i bottoni, per cui giocando con questi si può ottenere la griglia desiderata), ma la parte ostica è renderlo dinamico in modo che l'utente possa scegliere un mese diverso così come un anno diverso e che i giorni corrispondano effettivamente a quelli di quelle settimane. Il suggerimento che posso dare in questo caso è semplificare, anziché mostrare un calendario vero e proprio, fare in modo di coinvolgere l'utente con domande diverse, ad esempio: in quale anno vuoi prenotare? In quale mese dell'anno selezionato vuoi prenotare? A questo punto verifichi nel tuo foglio Google i giorni disponibili e comunichi all'utente di scegliere tra quelli. Ritengo sia più semplice e pratico anche per l'utente rispetto al tentativo di emulare un widget utilizzando i pulsanti dell'inline keyboard. E il concetto, come anticipato, è lo stesso descritto nel video.
Ciao, complimenti per il video molto utile! Volevo chiederti come posso rendere il bot dinamico nel senso che accetta più input sequenziali? Ovvero dopo una prima domanda "quanti anni hai?" Aspetta la risposta dell'utente e poi prosegue con un'altra "come ti chiami?" Aspetta la risposta e salva le due risposte in celle predefinite su gsheet. Quello che non riesco a implementare è proprio la sequenzialità di domande col bot. Perché con doPost (e) si attiva ogni volta che scrivo e quindi ripete sempre le stesse righe di codice, non potendo cambiare così la domanda
Ciao Erry, grazie dei complimenti 🙂 Per rispondere alla tua domanda, essendo la funzione doPost(e) quella che si attiva ogni volta che il bot viene sollecitato, affinché regoli le sue risposte in base ai messaggi ricevuti è necessario che al suo interno venga creata la logica desiderata. Faccio un esempio per spiegare il concetto: poniamo che le domande del bot siano "quanti anni hai?", "come ti chiami?" e "che lavoro fai?". L'utente 'pippo' inserisce il primo messaggio ("ciao") e già a questo punto la logica nella funzione doPost(e) dovrà verificare se l'utente 'pippo' ha già risposto in precedenza alla prima domanda (leggendo dallo Spreadsheet dove salvi le risposte). Se non c'è nessun riferimento nel Foglio il bot gli chiede "quanti anni hai?". A questo punto l'utente "pippo" inserirà "25" e il bot salverà questa informazione nel Foglio (ad esempio in 3 celle: "pippo", "domanda 1", "25"). Dopodiché il bot farà un controllo rileggendo il Foglio stesso, vedrà che "pippo" ha già risposto alla domanda 1 e chiederà "come ti chiami?". Se "pippo" risponde scriverà nel Foglio: "pippo", "domanda 2", "Pippo" e chiederà "che lavoro fai?". Poniamo adesso che "pippo" non risponda e chiuda la chat. Il giorno dopo "pippo" torna e scrive "ciao". Il bot come di consueto farà i controlli nel Foglio e vedrà che a "pippo" sono già associate 2 risposte (domanda 1 e domanda 2). Questo ti consentirà di non chiedere di nuovo a "pippo" le stesse domande e poiché non ha risposto a "che lavoro fai?" gli chiederà di nuovo questa domanda (la domanda 3). Descritto a parole è un po' contorto, in ogni modo c'è da lavorare un po' nella logica e non è immediato, ma questo che ti ho descritto è sicuramente un buon approccio per ottenere il risultato che desideri 👍
@@_MagicMike molte gentile e ti ringrazio per la rapida risposta! Ho capito il tuo esempio, in pratica all'interno del doPost(e) dovrò mettergli questa funzione di controllo della domanda da fare, in maniera tale che ad ogni "evento" (risposta dell'utente Pippo) lui controlli che domanda deve fare. Ci provo e ti faccio sapere! Grazie ancora
Buongiorno, ho provato e sembra funzionare tutto, volevo chiederti due domande: 1) per una maggior unicità ed evitare equivoci sarebbe meglio controllare per chatid? Se due utenti avessero lo stesso nome il codice darebbe riconoscimenti errati no? 2) se volessi che il bot poi scriva su un canale nel quale è admin come dovrei procedere? Vorrei che prenda il testo che scrivo su gsheet e lo inoltro in un canale telegram, è fattibile?
@@Erasmus12 Ciao, grazie del feedback sul funzionamento del codice :) Il secondo punto sarebbe da approfondire in termini di fattibilità con quello che vorresti che facesse il bot, hai già effettuato delle prove che non sono andate a buon fine? Mentre relativamente al punto 1 è sempre consigliato (in generale nella programmazione) utilizzare gli ID anziché le stringhe, le seconde infatti possono cambiare oppure generare ambiguità come nel caso che hai descritto.
@@_MagicMike ok come presumevo per la questione ID, grazie mille. Per la prima questione, non ho ancora provato ma non so sinceramente dove iniziare o trovare materiale a supporto che possa aiutarmi: l'obiettivo è scrivere del testo sul foglio gsheet, che ogni volta viene inoltrato al bot il quale a sua volta lo inoltra su un canale telegram per il quale è amministratore (altrimenti non potrebbe inviare messaggi)
Ciao, è possibile modificare dinamicamente i tasti? dovrei fare un bot per l'inserimento di dati di persone. Poi dovrei aggiungere dei tasti con i nomi delle persone che sono stati inserit e salvati nel foglio google che una volta premuti mostrano le info. Sto avendo anche un pò di difficoltà perchè non riesco a far inserire una info alla volta attraverso messaggi diversi... Il bot non aspetta e manda a schermo tutte le richieste.
Dovresti provare a salvati le informazioni inserite su un Foglio Google e gestire la logica dello script in modo che prenda quelle info da mostrare al messaggio successivo nella keyboard.
@@_MagicMike grazie per la risposta... questo lo è gia la mia domanda era: posso limitare l'utilizzo ai soli componenti del gruppo. e, il bot può rispondere direttamente nella chat del gruppo stesso grazie
@@RicciLuca-ATSsrls ciao Luca, per queste impostazioni, non essendo dipendenti dalla funzionalità dello script del bot bensì si tratta di configurazioni relative alla piattaforma Telegram, ti consiglio di fare riferimento alla relativa documentazione. È un caso particolare che richiede di mettersi a fare dei test con i setup.
Ciao, volevo chiederti come si fa a fare un multi menù inline keyboard?. Cioè premo un pulsante e poi magari mi porta in un'altra selezione di inline keyboard. Se riuscissi a spiegarmi o a trovare una guida dove lo spiegasse mi aiuteresti tanto
Ciao Roberto, prendendo come esempio il codice del video, sulla base del contenuto di _contents.callback___query.data_ potresti scegliere quale azione effettuare, appunto visualizzare un messaggio prelevando le informazioni da un Foglio Google (come nel video) oppure richiamare il codice di un'altra keyboard, ad esempio una keyboard2 definita anch'essa in doPost().
Hi i'm having a bit of trouble on your if(contents.callback_query) because it's not getting my input whenever i click a button, contents.message works fine so i assumed that the reply input in clicking a button is not getting recorded.
@@_MagicMike I did and there are no errors this is a sample of my code it's only simple it would only send a text that says submit if i click a button, any thoughts on here? if(contents.callback_query) { var id = contents.callback_query.from.id; sendText(id,"Submit"); } else if { sendText(id,"Here are the buttons"); sendKeyboard(id,text,keyboard); }
@Tyr try to use *sendMessage(id,"Here are the buttons")* instead of _sendText(id,"Here are the buttons")_ , anyway you have to define _id_ in the _else_ statement too.
Ciao DM, per scrivere in un canale Telegram prova a dare un'occhiata alle push notifications di Telegram Bot. Per la questione del recupero delle informazioni da un sito web, a meno che non trovi un servizio che espone un'API che quando interrogata ti restituisce il risultato desiderato, potresti effettuare il parsing di una pagina web che contiene il risultato della partita ed isolare il dato di tuo interesse. Con Apps Script le chiamate a URL esterni si fanno con il metodo UrlFetchApp.fetch(...), per elaborare la risposta invece è necessario lavorare con le istruzioni JavaScript.
@@dm_35 se sei interessato alla programmazione inizierei da qualcosa di più semplice, per approcciare all'argomento potrebbe esserti utile il mio video Corso Rapido Gratuito sul JavaScript Semplificato per Google: th-cam.com/video/qI6_yBW_7jg/w-d-xo.html Una volta costruite le basi della programmazione e aver generato consapevolezza a livello pratico realizzando piccoli progetti, potrai mano a mano raggiungere l'obiettivo che ti sei prefissato. Sicuramente non sarà né semplice né immediato ma non per questo non raggiungibile 👍
What you mean? This method is used to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, _True_ is returned. You can find here more information about this: core.telegram.org/bots/api#answercallbackquery
Trovi il codice integrale nel mio blog AppsScript.it: www.appsscript.it/tutorial/telegram-bot-con-inline-keyboard-in-google-sheets/
grazie!
Grazie a te del commento! 🙂
@@_MagicMike Un piccolo contributo alla promozione del tuo canale per l'aiuto che mi hai dato. Grazie insegnante. 🙏
Colui che condivide la conoscenza rende migliore la vita dell'umanità.😊
bravo, bravissimo! Bis!!! 👏👏👏
Attendiamo nuovi video. 🙏
🤝 💯💣
Grazie del feedback! 🙂 (sottoforma di rebus 😅)
Ciao, complimenti per la spiegazione, faresti un video sull'integrazione del bot telegram con le inlinekeyboard per simulare un'agenda di appuntamenti in google sheets ?
Ciao Riccardo, grazie del feedback 🙂 Relativamente alla tua richiesta, si tratta di qualcosa che riguarda più una progettazione specifica piuttosto che un tutorial sull'uso di funzionalità. Dal punto di vista tecnico i concetti da utilizzare sono i medesimi spiegati nel video, da quello operativo la questione è invece molto più ampia. Se vuoi mostrare un calendario cliccabile questo richiede di essere costruito, esistono librerie in rete tuttavia si basano principalmente su python, che esula da Google Apps Script. Generare una serie di bottoni cliccabili con i giorni del mese è fattibile (le parentesi quadre nell'oggetto JSON sono le righe mentre quelle graffe i bottoni, per cui giocando con questi si può ottenere la griglia desiderata), ma la parte ostica è renderlo dinamico in modo che l'utente possa scegliere un mese diverso così come un anno diverso e che i giorni corrispondano effettivamente a quelli di quelle settimane. Il suggerimento che posso dare in questo caso è semplificare, anziché mostrare un calendario vero e proprio, fare in modo di coinvolgere l'utente con domande diverse, ad esempio: in quale anno vuoi prenotare? In quale mese dell'anno selezionato vuoi prenotare? A questo punto verifichi nel tuo foglio Google i giorni disponibili e comunichi all'utente di scegliere tra quelli. Ritengo sia più semplice e pratico anche per l'utente rispetto al tentativo di emulare un widget utilizzando i pulsanti dell'inline keyboard. E il concetto, come anticipato, è lo stesso descritto nel video.
thnk u very much bro , you are making a really useful tutorials
GOD bless you
Thank you for your feedback! 🙂
Ciao, complimenti per il video molto utile! Volevo chiederti come posso rendere il bot dinamico nel senso che accetta più input sequenziali? Ovvero dopo una prima domanda "quanti anni hai?" Aspetta la risposta dell'utente e poi prosegue con un'altra "come ti chiami?" Aspetta la risposta e salva le due risposte in celle predefinite su gsheet. Quello che non riesco a implementare è proprio la sequenzialità di domande col bot. Perché con doPost (e) si attiva ogni volta che scrivo e quindi ripete sempre le stesse righe di codice, non potendo cambiare così la domanda
Ciao Erry, grazie dei complimenti 🙂 Per rispondere alla tua domanda, essendo la funzione doPost(e) quella che si attiva ogni volta che il bot viene sollecitato, affinché regoli le sue risposte in base ai messaggi ricevuti è necessario che al suo interno venga creata la logica desiderata. Faccio un esempio per spiegare il concetto: poniamo che le domande del bot siano "quanti anni hai?", "come ti chiami?" e "che lavoro fai?". L'utente 'pippo' inserisce il primo messaggio ("ciao") e già a questo punto la logica nella funzione doPost(e) dovrà verificare se l'utente 'pippo' ha già risposto in precedenza alla prima domanda (leggendo dallo Spreadsheet dove salvi le risposte). Se non c'è nessun riferimento nel Foglio il bot gli chiede "quanti anni hai?". A questo punto l'utente "pippo" inserirà "25" e il bot salverà questa informazione nel Foglio (ad esempio in 3 celle: "pippo", "domanda 1", "25"). Dopodiché il bot farà un controllo rileggendo il Foglio stesso, vedrà che "pippo" ha già risposto alla domanda 1 e chiederà "come ti chiami?". Se "pippo" risponde scriverà nel Foglio: "pippo", "domanda 2", "Pippo" e chiederà "che lavoro fai?". Poniamo adesso che "pippo" non risponda e chiuda la chat. Il giorno dopo "pippo" torna e scrive "ciao". Il bot come di consueto farà i controlli nel Foglio e vedrà che a "pippo" sono già associate 2 risposte (domanda 1 e domanda 2). Questo ti consentirà di non chiedere di nuovo a "pippo" le stesse domande e poiché non ha risposto a "che lavoro fai?" gli chiederà di nuovo questa domanda (la domanda 3). Descritto a parole è un po' contorto, in ogni modo c'è da lavorare un po' nella logica e non è immediato, ma questo che ti ho descritto è sicuramente un buon approccio per ottenere il risultato che desideri 👍
@@_MagicMike molte gentile e ti ringrazio per la rapida risposta! Ho capito il tuo esempio, in pratica all'interno del doPost(e) dovrò mettergli questa funzione di controllo della domanda da fare, in maniera tale che ad ogni "evento" (risposta dell'utente Pippo) lui controlli che domanda deve fare. Ci provo e ti faccio sapere! Grazie ancora
Buongiorno, ho provato e sembra funzionare tutto, volevo chiederti due domande:
1) per una maggior unicità ed evitare equivoci sarebbe meglio controllare per chatid? Se due utenti avessero lo stesso nome il codice darebbe riconoscimenti errati no?
2) se volessi che il bot poi scriva su un canale nel quale è admin come dovrei procedere? Vorrei che prenda il testo che scrivo su gsheet e lo inoltro in un canale telegram, è fattibile?
@@Erasmus12 Ciao, grazie del feedback sul funzionamento del codice :) Il secondo punto sarebbe da approfondire in termini di fattibilità con quello che vorresti che facesse il bot, hai già effettuato delle prove che non sono andate a buon fine? Mentre relativamente al punto 1 è sempre consigliato (in generale nella programmazione) utilizzare gli ID anziché le stringhe, le seconde infatti possono cambiare oppure generare ambiguità come nel caso che hai descritto.
@@_MagicMike ok come presumevo per la questione ID, grazie mille. Per la prima questione, non ho ancora provato ma non so sinceramente dove iniziare o trovare materiale a supporto che possa aiutarmi: l'obiettivo è scrivere del testo sul foglio gsheet, che ogni volta viene inoltrato al bot il quale a sua volta lo inoltra su un canale telegram per il quale è amministratore (altrimenti non potrebbe inviare messaggi)
Ciao, è possibile modificare dinamicamente i tasti? dovrei fare un bot per l'inserimento di dati di persone. Poi dovrei aggiungere dei tasti con i nomi delle persone che sono stati inserit e salvati nel foglio google che una volta premuti mostrano le info. Sto avendo anche un pò di difficoltà perchè non riesco a far inserire una info alla volta attraverso messaggi diversi... Il bot non aspetta e manda a schermo tutte le richieste.
Dovresti provare a salvati le informazioni inserite su un Foglio Google e gestire la logica dello script in modo che prenda quelle info da mostrare al messaggio successivo nella keyboard.
grazie ottimo video
mi chiedevo se era possibile far rispondere il bot direttamente su un gruppo e limitare l'utilizzo ai soli membri
Grazie
Ciao Luca, nel caso di un gruppo il bot deve esserne un amministratore 👍
@@_MagicMike grazie per la risposta... questo lo è gia la mia domanda era: posso limitare l'utilizzo ai soli componenti del gruppo. e, il bot può rispondere direttamente nella chat del gruppo stesso
grazie
@@RicciLuca-ATSsrls ciao Luca, per queste impostazioni, non essendo dipendenti dalla funzionalità dello script del bot bensì si tratta di configurazioni relative alla piattaforma Telegram, ti consiglio di fare riferimento alla relativa documentazione. È un caso particolare che richiede di mettersi a fare dei test con i setup.
Ciao, volevo chiederti come si fa a fare un multi menù inline keyboard?. Cioè premo un pulsante e poi magari mi porta in un'altra selezione di inline keyboard. Se riuscissi a spiegarmi o a trovare una guida dove lo spiegasse mi aiuteresti tanto
Ciao Roberto, prendendo come esempio il codice del video, sulla base del contenuto di _contents.callback___query.data_ potresti scegliere quale azione effettuare, appunto visualizzare un messaggio prelevando le informazioni da un Foglio Google (come nel video) oppure richiamare il codice di un'altra keyboard, ad esempio una keyboard2 definita anch'essa in doPost().
Hi i'm having a bit of trouble on your if(contents.callback_query) because it's not getting my input whenever i click a button, contents.message works fine so i assumed that the reply input in clicking a button is not getting recorded.
Have you checked if an error is returned to you?
@@_MagicMike I did and there are no errors this is a sample of my code it's only simple it would only send a text that says submit if i click a button, any thoughts on here?
if(contents.callback_query) {
var id = contents.callback_query.from.id;
sendText(id,"Submit");
}
else if {
sendText(id,"Here are the buttons");
sendKeyboard(id,text,keyboard);
}
@Tyr try to use *sendMessage(id,"Here are the buttons")* instead of _sendText(id,"Here are the buttons")_ , anyway you have to define _id_ in the _else_ statement too.
Hi can you create a viber bot in the same way? Would appreciate much.
The concept should be the same, the API change: developers.viber.com/docs/api/rest-bot-api/
Ciao io sto cercando di creare un bot che segnali alla fine del primo tempo il risultato di più partite su diretta o siti simili, come dovrei fare?
Comunque tutorial super chiari e diretti...iscritto immediatamente :)
Ciao DM, per scrivere in un canale Telegram prova a dare un'occhiata alle push notifications di Telegram Bot. Per la questione del recupero delle informazioni da un sito web, a meno che non trovi un servizio che espone un'API che quando interrogata ti restituisce il risultato desiderato, potresti effettuare il parsing di una pagina web che contiene il risultato della partita ed isolare il dato di tuo interesse. Con Apps Script le chiamate a URL esterni si fanno con il metodo UrlFetchApp.fetch(...), per elaborare la risposta invece è necessario lavorare con le istruzioni JavaScript.
@@_MagicMike Grazie per la risposta esaustiva, pensavo fosse più facile 😅 le mie competenze in programmazione sono sotto lo 0
@@dm_35 se sei interessato alla programmazione inizierei da qualcosa di più semplice, per approcciare all'argomento potrebbe esserti utile il mio video Corso Rapido Gratuito sul JavaScript Semplificato per Google: th-cam.com/video/qI6_yBW_7jg/w-d-xo.html Una volta costruite le basi della programmazione e aver generato consapevolezza a livello pratico realizzando piccoli progetti, potrai mano a mano raggiungere l'obiettivo che ti sei prefissato. Sicuramente non sarà né semplice né immediato ma non per questo non raggiungibile 👍
hi can help me
Hi Rimaldz, where is it that you found a problem in the procedure?
answerCallbackQuery
What you mean? This method is used to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, _True_ is returned. You can find here more information about this: core.telegram.org/bots/api#answercallbackquery