Aggiornamento Turibot
Per aggiornare vi basterà sovrascrivere tutti i file, fate attenzione ad editare corretamente
Il bot è stato completamente aggiornato alle Bot API 4.0
Aggiunto
Aggiunta la funzione
Aggiunta la funzione
Spostati/Aggiunti alcuni parametri delle seguenti funzioni:
Miglioramenti vari
https://github.com/davtur19/TuriBot
Per aggiornare vi basterà sovrascrivere tutti i file, fate attenzione ad editare corretamente
commands.php
Il bot è stato completamente aggiornato alle Bot API 4.0
Aggiunto
config.php
che sarà da settare con il proprio ID e lo Username del bot in minuscolo.Aggiunta la funzione
command()
per semplificare l'uso dei comandi, troverete un esempio in commands.php
Aggiunta la funzione debug()
che vi permetterà di vedere il risultato di print_r()
direttamente in chatAggiunta la funzione
getWebhookInfoApi()
per poter fare getWebhookInfo
anche di altri TokenSpostati/Aggiunti alcuni parametri delle seguenti funzioni:
sendAudio
, sendDocument
, sendVideo
, sendVideoNote
, sendContact
, sendVenue
, sendInvoice
Indentato secondo lo standard PSR1/PSR2Miglioramenti vari
https://github.com/davtur19/TuriBot
GitHub
GitHub - davtur19/TuriBot: TuriBot is a simple way to communicate with Telegram APIs in PHP
TuriBot is a simple way to communicate with Telegram APIs in PHP - davtur19/TuriBot
Debuggare Bot Telegram in modo semplice
Debuggare bot telegram può essere molto ostico non potendo leggere valori stampati in pagina da
Mentre si prova a mandare la variabile in chat spesso può capitare di superare il limite di 4096 char (limite di sendMessage)
Per questo ho deciso di fare una funzione per semplificare il tutto.
Descrizione:
Valori restituiti:
Sempre
- Sostituire tutti i $chat_id con i chat_id.
- Sostituire sendMessage(chat_id, text) con la vostra sendmessage, ed eventualmente aggiustare l'ordine dei parametri.
- Settare o sostituire MYID con il vostro id.
Debuggare bot telegram può essere molto ostico non potendo leggere valori stampati in pagina da
var_dump()
o simili a meno che non si simulino le richieste delle Bot API.Mentre si prova a mandare la variabile in chat spesso può capitare di superare il limite di 4096 char (limite di sendMessage)
Per questo ho deciso di fare una funzione per semplificare il tutto.
Descrizione:
bool debug ( mixed $expression [, mixed $... ] )Se esiste
$chat_id
manda il messaggio in quella chat, altrimenti lo manda al id settato alla costante MYID
Parametri:expression= La variabile che vuoi dumpare
Valori restituiti:
Sempre
true
Esempi:debug(true, $var, 123, $update);Funzione:
function debug()
{
global $chat_id;
$args = func_get_args();
if (!isset($chat_id) or $chat_id == 0 or $chat_id == '') {
$id = MYID;
} else {
$id = $chat_id;
}
foreach ($args as $debug) {
$str = var_export($debug, true);
$array_str = str_split($str, 4050);
foreach ($array_str as $value) {
sendMessage($id, 'Debug:' . PHP_EOL . $value);
}
}
return true;
}
Come adattarla per altri framework:- Sostituire tutti i $chat_id con i chat_id.
- Sostituire sendMessage(chat_id, text) con la vostra sendmessage, ed eventualmente aggiustare l'ordine dei parametri.
- Settare o sostituire MYID con il vostro id.
Turi Code
Sotto "AMD64 Architecture" ci sono un po' di PDF che spiegano ogni cosa di come funziona l'architettura AMD64 https://developer.amd.com/resources/developer-guides-manuals/ Altre guide sempre riguardanti l'architettura https://software.intel.com/en-us/art…
Un altro manuale http://bob.cs.sonoma.edu/IntroCompOrg-x64/book.html
Più un pdf: https://uclibc.org/docs/psABI-x86_64.pdf
Più un pdf: https://uclibc.org/docs/psABI-x86_64.pdf
Consigli per rendere sicuri bot con webhook:
+ Disattivare l'indexing delle directory e dei file sul webserver.
+ Accettare solo richieste dal range di ip delle bot api 149.154.167.197-233 per evitare fake request.
Fonte: https://core.telegram.org/bots/webhooks
+ Il nome della directory del bot deve essere difficile da trovare. Per esempio non nominarla come il nome del bot.
+ Bloccare i "cloni", ovvero non permettere di settare al vostro webhook altri token. Molto utile in caso di callback data non verificati.
Per esempio se ricevete il token dal update di Telegram (vedi sotto) vi basterebbe fare un check dei numeri prima di ":" siccome è l'id del bot.
+ A seconda di dove hostate potrebbe esservi utile non salvare il token nel file in caso di perdita del source, delle alternative possono essere:
- Usare una variabile d'ambiente.
- Richiesta GET con il token proveniente dal update di Telegram.
Per esempio: https://api.telegram.org/TOKEN/setWebhook?url=https://esempio/index.php?api=TOKEN
+ Disattivare l'indexing delle directory e dei file sul webserver.
+ Accettare solo richieste dal range di ip delle bot api 149.154.167.197-233 per evitare fake request.
Fonte: https://core.telegram.org/bots/webhooks
+ Il nome della directory del bot deve essere difficile da trovare. Per esempio non nominarla come il nome del bot.
+ Bloccare i "cloni", ovvero non permettere di settare al vostro webhook altri token. Molto utile in caso di callback data non verificati.
Per esempio se ricevete il token dal update di Telegram (vedi sotto) vi basterebbe fare un check dei numeri prima di ":" siccome è l'id del bot.
+ A seconda di dove hostate potrebbe esservi utile non salvare il token nel file in caso di perdita del source, delle alternative possono essere:
- Usare una variabile d'ambiente.
- Richiesta GET con il token proveniente dal update di Telegram.
Per esempio: https://api.telegram.org/TOKEN/setWebhook?url=https://esempio/index.php?api=TOKEN
core.telegram.org
Marvin's Marvellous Guide to All Things Webhook
We currently support two ways of processing bot updates, getUpdates and setWebhook. getUpdates is a pull mechanism, setwebhook…
@TuriBot è tornato online per tutti dopo tanto tempo.
È stata fatta una riscrittura completa del codice migliorando performance, mantenibilità e sicurezza ma sopratutto nuovi comandi per fare acing.
Sfortunatamente la riscriturra del codice ha portato l'eliminazione di alcuni comandi obsoleti e inutili.
È stata fatta una riscrittura completa del codice migliorando performance, mantenibilità e sicurezza ma sopratutto nuovi comandi per fare acing.
Sfortunatamente la riscriturra del codice ha portato l'eliminazione di alcuni comandi obsoleti e inutili.
Ho aperto il gruppo per @pappaprontaml dopo tanto tempo finalmente è pronta una primissima versione di test del app.
Per chiunque sia interessato entri pure nel gruppo per testare l'app, segnalare bug e esprimere qualche critica costruttiva per poterla migliorare (si spera) in futuro.
Per chiunque sia interessato entri pure nel gruppo per testare l'app, segnalare bug e esprimere qualche critica costruttiva per poterla migliorare (si spera) in futuro.
@DeepLink: In questo mio canale potete trovare molti link con i parametri utilizzati Telegram; tra cui i più banali come joinchat- addstickers/ e alcuni più nascosti come i vari tg://domain tg://resolve ecc...
Non è una lista completa molto probabilmente
La maggior parte li ho trovati qua
Non è una lista completa molto probabilmente
La maggior parte li ho trovati qua
Trovati questi nuovi update/metodi nella beta di Telegram 5.0 per Android
Probabilmente le chiamate di gruppo e gli scheduled message arriveranno presto!
Probabilmente le chiamate di gruppo e gli scheduled message arriveranno presto!
groupCall
groupCallPrivate
groupCallDiscarded
groupCallParticipantInvited
groupCallParticipantLeft
groupCallParticipantAdmin
groupCallParticipant
updateDeleteScheduledMessages
updateNewScheduledMessage
updateGroupCall
updateGroupCallParticipant
Per chi rivolesse i vecchi temi di Telegram per Android, siccome dalla 5.2 li hanno sostituiti con quelli di Telegram X
Si possono mandare richieste alle Bot API senza bisogno di specificare il metodo nel URL ma semplicemente mandandole con POST in RAW con l'header "Content-Type: application/json", come per il json payload, bisognerà specificare il metodo nel json; ringrazio @V1rus_Falcon per la scoperta di questa cosa non documentata.
Inoltre dopo qualche test ho scoperto che è possibile fare lo stesso mandando i parametri con una richiesta POST normale.
Inoltre dopo qualche test ho scoperto che è possibile fare lo stesso mandando i parametri con una richiesta POST normale.
Oggi voglio parlarvi dei DC e dei Bot AntiVoIP, e fare chiarezza su questo argomento.
Prima di tutto una rapida spiegazione per chi non sapesse cosa siano:
- DC è l'abbreviazione per Data Center, non sono altro che degli edifici contenenti diversi tipi di server.
- Telegram ha 5 Data Center, il DC1 è situato in America mentre il DC4 è in Europa.
- I Bot AntiVoIP controllano il DC di un utente che entra in un gruppo, spesso sono settati per bannare a vista i DC1.
Spesso le convinzioni degli utenti e dei Bot AntiVoIP sono queste:
- Tutti i VoIP sono DC1 e non possono essere DC4.
- I VoIP sono dannosi per il gruppo.
- Il DC viene assegnato in base al prefisso.
Le convinzioni degli utenti non sono del tutto sbagliate, infatti spesso succede che i DC1 siano VoIP ma non è sempre così, inoltre non basta qualche test per dire che tutti i VoIP sono del DC1 e non possono essere del DC4, per esserne certi al 100% bisognerebbe averne la certezza da Telegram.
Mettiamo caso facessimo 1000 test per controllare che alla registrazione tutti i +1 vadano sul DC1 e tutti i +39 vadano su DC4.
Se tutti i test andassero a buon fine, comunque non significa che tutti i +39 siano DC4, e lo stesso per i +1, prendiamo questi casi:
- Se alla registrazione di un +39 il DC4 sia offline cosa succede? Telegram potrebbe benissimo metterti sul un altro DC o non farti registrare.
- Telegram ti potrebbe spostare di DC, per esempio se cambi residenza e vai a vivere in America ti potrebbe spostare sul DC1 dopo svariati mesi.
- Un utente cambiando numero di telefono non cambia DC.
Ci sono tanti utenti DC1 che attualmente hanno un +39 e vengono bannati dai gruppi senza nessun reale motivo, e chi invece vuole dar fastidio con un VoIP semplicemente spende pochi centesimi in più per prendersi un VoIP Europeo. (E non è l'unico modo per bypassare i controlli)
Quindi tutto ciò non risolve nulla, siccome ci possono essere VoIP/DC1 non dannosi per il gruppo e VoIP dannosi per il gruppo che bypassano i controlli.
Io personalmente consiglio di non usare ban automatici ma di far verificare a un admin se l'utente è davvero dannoso, e usare il fatto che sia DC1 solo come indizio di un possibile VoIP, non certezza.
Prima di tutto una rapida spiegazione per chi non sapesse cosa siano:
- DC è l'abbreviazione per Data Center, non sono altro che degli edifici contenenti diversi tipi di server.
- Telegram ha 5 Data Center, il DC1 è situato in America mentre il DC4 è in Europa.
- I Bot AntiVoIP controllano il DC di un utente che entra in un gruppo, spesso sono settati per bannare a vista i DC1.
Spesso le convinzioni degli utenti e dei Bot AntiVoIP sono queste:
- Tutti i VoIP sono DC1 e non possono essere DC4.
- I VoIP sono dannosi per il gruppo.
- Il DC viene assegnato in base al prefisso.
Le convinzioni degli utenti non sono del tutto sbagliate, infatti spesso succede che i DC1 siano VoIP ma non è sempre così, inoltre non basta qualche test per dire che tutti i VoIP sono del DC1 e non possono essere del DC4, per esserne certi al 100% bisognerebbe averne la certezza da Telegram.
Mettiamo caso facessimo 1000 test per controllare che alla registrazione tutti i +1 vadano sul DC1 e tutti i +39 vadano su DC4.
Se tutti i test andassero a buon fine, comunque non significa che tutti i +39 siano DC4, e lo stesso per i +1, prendiamo questi casi:
- Se alla registrazione di un +39 il DC4 sia offline cosa succede? Telegram potrebbe benissimo metterti sul un altro DC o non farti registrare.
- Telegram ti potrebbe spostare di DC, per esempio se cambi residenza e vai a vivere in America ti potrebbe spostare sul DC1 dopo svariati mesi.
- Un utente cambiando numero di telefono non cambia DC.
Ci sono tanti utenti DC1 che attualmente hanno un +39 e vengono bannati dai gruppi senza nessun reale motivo, e chi invece vuole dar fastidio con un VoIP semplicemente spende pochi centesimi in più per prendersi un VoIP Europeo. (E non è l'unico modo per bypassare i controlli)
Quindi tutto ciò non risolve nulla, siccome ci possono essere VoIP/DC1 non dannosi per il gruppo e VoIP dannosi per il gruppo che bypassano i controlli.
Io personalmente consiglio di non usare ban automatici ma di far verificare a un admin se l'utente è davvero dannoso, e usare il fatto che sia DC1 solo come indizio di un possibile VoIP, non certezza.