Inviare messaggi a una chat Telegram

Ciao a tutti,
tramite la libreria Universal Telegram Bot vorrei far sì che il mio progetto invii dei messaggi in una chat Telegram in modo che sia possibile verificare lo stato del progetto, se sta funzionando correttamente o se qualcosa non va.
Ho creato quindi il mio bot usando BotFather su Telegram.
In tutti gli esempi che ho trovato però il codice risponde a specifici messaggi inviati dall'utente. Io invece vorrei che li mandasse a prescindere senza necessariamente che io vada ad interrogare il sistema.
È possibile farlo?

Grazie mille

Se invii il messaggio al chatID che ti è stato assegnato (lo stesso a cui invieresti le risposte) non arriva?

Guglielmo

Pensavo di fare come da tuo suggerimento ma ho due domande in merito:

  • come recupero il chat id se non invio nessun messaggio di richiesta?
  • se cancello la chat da Telegram, la nuova chat avrà un chat id diverso?

La recuperi da Telegram dal IDBot

Guglielmo

Un chatbot telegram può inviare messaggi solo ad un utente che ha già avviato una conversazione con il bot stesso (immagina la quantità di spam che riceveresti in caso contrario) oppure ad un gruppo in cui è stato inserito tra gli amministratori.

Se non ricordo male è possibile usare anche un canale, ma i canali sono solo pubblici da quanto ricordo.

Per recuperare l'id invece puoi usare un altro bot come ad esempio @getidsbot

In realtà da telegram crea una chat e si fa dare il "BOTtoken", chiede poi al IDBot il suo "chatID" ed ha quel punto, con i due elementi, crea l'applicazione che può trasmettere e ricevere.

Ogni chat che crei con "BotFather" ha il suo "BOTtoken", mentre il "chatID" rimane costante ... io ho alcune applicazioni, che usano questi dati, che controllo a distanza sia da telegram su desktop che da telegram su telefono.

Guglielmo

No Guglielmo è il bot che ha sempre lo stesso token. Ne puoi creare più di uno ovviamente, ed ognuno avrà il suo token univoco (non è la chat che vai a creare con BotFather, bensi il bot).

Il chat id identifica la conversazione che hai aperto con il bot e funzionalmente è equivalente al group id che ha l'unica differenza di essere sempre un numero negativo.
Ad esempio è possibile avviare una comunicazione con lo stesso bot sia inviandogli un messaggio diretto che attraverso un gruppo ed ovviamente le due chat rimangono distinte.

Se la chat è one-to-one (utente-bot), il chat id è equivalente allo user id (per questo rimane costante come dici tu).
Quindi se si elimina la chat sarà necessario "solo" riavviare il bot, ma l'id rimane lo stesso.
Fintanto che il bot non è stato esplicitamente avviato, non potrà inviare messaggi all'utente "in autonomia".

Con il gruppo invece questa cosa non sarà possibile perché il nuovo gruppo avrà un nuovo id diverso dal precedente.
Se invece si cancella solo la cronologia, il bot rimane attivo e il chat/group id ovviamente non cambia.

Anche i singoli messaggi hanno un proprio ID specifico; ad esempio il bot potrebbe aggiornare sempre lo stesso messaggio invece di crearne uno nuovo (se si volesse fare una sorta di monitor ad esempio, io opterei per questa scelta).

Tutti gli id sono degli interi da 64 bit con segno.

P.S.
Non so che libreria hai usato per i tuoi progetti, ma se lo prevede, prova ad abilitare il debug della risposta JSON che viene inviata dal server per ogni richiesta, cosi hai modo di vedere nel dettaglio tutta la struttura.

Ad esempio, questo è l'output per un messaggio inviato come utente:

e questo invece è l'output per un messaggio inviato da un gruppo di cui il bot è admin:

Si, certo, è che per me il BOT è praticamente la chat con cui colloquio :grin: ... ma è corretto specificare bene :+1:

Guglielmo

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.