Passa al contenuto principale

Bot Telegram

Autenticazione Utente

Di default limitiamo l'accesso agli utenti casuali di Telegram e richiediamo un login... ci sono 2 modi per effettuare l'accesso:

Password globale

Una password globale può essere impostata in appsettings.json Parameters.AuthenticationPassword, e sarà sempre valida. Dopo aver impostato la password, per esempio a foo, un nuovo utente può accedere usando /start foo Questo va bene per noi, tuttavia per vari clienti è meglio utilizzare il token di accesso (così possiamo limitare il numero di account creati)

Token di accesso

I token di accesso sono elementi di login monouso. Per generare un token di accesso puoi chiamare l'API:

# Genera un token di accesso
[post]
http://localhost:9300/bot/access_token
# Genera 3 token di accesso tutti in una volta
[post]
http://localhost:9300/bot/access_token?number=3

Dopo che il token è stato generato, un nuovo utente può accedere usando: /start <token>

Comandi

Il bot dispone di alcuni comandi speciali, che possono essere utilizzati per fare una varietà di cose "correlate allo sviluppo": I comandi possono essere attivati in Telegram utilizzando la seguente sintassi: /<comando> <arg1> <arg2> <arg3> O in HTTP utilizzando la seguente sintassi:

[METODO]: POST
[URL]: localhost:9200/bot/1/message
[CORPO]: {
"kind": "Command",
"value": {
"Command":"<comando>",
"Args":["<arg1>", "<arg2>", "<arg3>"]
}
}

L'elenco dei comandi disponibili è il seguente:

  • Start: Utilizzato per l'autenticazione, deve essere seguito da password o token.
  • Reset: reimposta la chat dell'utente.
  • ResetGlobal: reimposta la chat di tutti gli utenti.
  • StartMaintenance: invia un messaggio a tutti gli utenti spiegando che il bot sta entrando in modalità di manutenzione e non sarà in grado di rispondere alle domande per un po'.
  • EndMaintenance: invia un messaggio a tutti gli utenti dicendo che è uscito dalla modalità di manutenzione.
  • Where: il bot risponde con un breve riepilogo della posizione del bot (ip, nome utente telegram, porta del server http)