-
-
Save salvatorecordiano/5db0dc73baf7e6750305068753212120 to your computer and use it in GitHub Desktop.
<?php | |
// recupero il contenuto inviato da Telegram | |
$content = \file_get_contents('php://input'); | |
// converto il contenuto da JSON ad array PHP | |
$update = \json_decode($content, true); | |
// se la richiesta è null interrompo lo script | |
if(!$update) { | |
exit; | |
} | |
// assegno alle seguenti variabili il contenuto ricevuto da Telegram | |
$message = isset($update['message']) ? $update['message'] : null; | |
$messageId = isset($message['message_id']) ? $message['message_id'] : null; | |
$chatId = isset($message['chat']['id']) ? $message['chat']['id'] : null; | |
$firstname = isset($message['chat']['first_name']) ? $message['chat']['first_name'] : null; | |
$lastname = isset($message['chat']['last_name']) ? $message['chat']['last_name'] : null; | |
$username = isset($message['chat']['username']) ? $message['chat']['username'] : null; | |
$date = isset($message['date']) ? $message['date'] : null; | |
$text = isset($message['text']) ? $message['text'] : null; | |
// mi preparo a restitutire al chiamante la mia risposta che è un oggetto JSON | |
// imposto l'header della risposta | |
header('Content-Type: application/json'); | |
// la mia risposta è un array JSON composto da chat_id, text, method | |
// chat_id mi consente di rispondere allo specifico utente che ha scritto al bot | |
// text è il testo della risposta | |
$parameters = array('chat_id' => $chatId, 'text' => $text, 'method' => 'sendMessage'); | |
// converto e stampo l'array JSON sulla response | |
echo \json_encode($parameters); |
Ciao Salvatore,
sono alle prime armi con i bot Telegram e ancora ci capisco poco. Volevo chiederti una cosa (ho provato a guardare di qua e di là ma non ho trovato esempi). Come faccio ad inviare una data posizione? Cioè, vorrei inserire delle coordinate, facendo si che compaia nella chat una mappa con il pin su quell'indirizzo. È possibile?
Salvatore il bot ripete obni cosa che scrivo ma non era questo che volevo creare. Volveo creare un bot che rispondesse in un modo specifico a un messaggio specifico. ESEMPIO:
IO: Bella
Bot: Brutta
Come devo fare?
Ciao Salvatore, grazie per l'esempio.
Vorrei sapere come posso fare per inviare due messaggi, uno dopo l'altro allo stesso utente, usando il webhook.
Ho provato facendo doppio echo
alla fine ma non funziona.
Ho provato anche a creare un array per il 'text' con più messaggi, cioè la tua riga 30 diventa:
$parameters = array('chat_id' => $chatId, "text" => array('messagio1', 'messaggio2');
ma neanche questo funziona.
Tu hai qualche idea?
Ciao Salvatore,
ho provato ad utilizzate GitHub invece di Dropbox. Ho caricato il file sulla mia repo su GitHub, ho collegato Heroku a GitHub ma quando vado all'indirizzo /register.php mi restituisce sempre la pagina iniziale "Heroku | Welcome to your new app! ". Devo modificare qualcosa all'interno di qualche file? O cosa potrei aver sbagliato? Grazie
Ho provato a ricaricare il file, ho rifatto il Deploy su Heroku ma continua a dirmi "Build failed" se vado sul log. Non capisco :(
Buona sera, io non conosco php però so programmare in java (livello base) dove posso trovare i file: index, Procfile, composer.json e execute per java?
Ciao @AlbeBi puoi trovare tutta la documentazione di Heroku per Java qui https://devcenter.heroku.com/categories/java-support
Ciao @AlbeBi puoi trovare tutta la documentazione di Heroku per Java qui https://devcenter.heroku.com/categories/java-support
grazie mille @salvatorecordiano
Ciao ragazzi, mi dareste una mano per favore? Ho creato un bot su Telegram e vorrei farlo interagire con una Dashboard che fornisce statistiche , ho le api di questa Dashboard ma come faccio a farli interagire?
Ciao @salvatorecordiano,
mi potresti aiutare nel capire come posso fare per recuperare l'id dell'ultimo messaggio appena inviato dal bot?
Caso pratico:
-
il bot invia un sondaggio ad una chat (su questo ci sono riuscito a fare con il seguente codice)
`$options = array("Devendra","noneofthese","Sourabh") ; $data = [ 'chat_id' => '$chatId', 'question' => 'This is whose number 12345 ?', 'options' => $options ]; header('Content-Type: application/json'); // la mia risposta è un array JSON composto da chat_id, text, method // chat_id mi consente di rispondere allo specifico utente che ha scritto al bot // text è il testo della risposta //$parameters = array('chat_id' => $chatId, 'text' => $messageBack, 'method' => 'sendMessage'); $parameters = array('chat_id' => $chatId, "question" => "This is whose number 12345 ?", "options" => $options, "is_anonymous" => "False", "parse_mode" => "markdown"); $parameters["method"] = "sendPoll"; echo json_encode($parameters); `
-
a questo punto mi servirebbe recuperare l'ID di questo poll, per poterlo poi successivamente recuperare e terminarlo/collezionare le risposte date
Non ne vengo fuori per capire come fare a recuperare l'ID del poll. Mi puoi aiutare?
Grazie mille!
Ciao Salvatore,
vorrei anch'io iniziare l'avventura con i bot di telegram, però prima di cimentarmi con il rischio di non combinar nulla, vorrei sapere se è fattibile il progetto che ho in mente.
In sostanza ho un sito internet (in realtà è fatto con wordpress) dove siamo in 5 amministratori, vorremmo la possibilità di poter sfruttare un bot telegram che permetta ai visitatori di scriverci da telegram in un gruppo dove siamo tutti e 5 presenti più il visitatore del momento.
A primo avviso si potrebbe pensare che basti un gruppo, ma in realtà non è possibile in quanto se i visitatori fossero più di uno, ognuno vedrebbe quello che scrive l'altro creando enorme confusione.
Il bot in sostanza dovrebbe poter esser sviluppato in due modi:
1- in modo che inoltri tutti i messaggi che il visitatore invia, ad un gruppo dove ci sono i 5 amministratori che rispondendo dal gruppo a sua volta i messaggi vengono inoltrati al visitatore in questione;
2- oppure in modo che crei ogni volta un nuovo gruppo telegram con i 5 amministratori più il visitatore in questione. Poi all'uscita del visitatore però il gruppo dovrebbe eliminarsi (anche se potremmo farlo manualmente ogni volta)
Vorrei sapere se in primis è fattibile e poi quale via più semplice mi consigli di percorrere (ed il grado di difficoltà che ha).
Grazie infinite,
Enrico