Skip to content

Instantly share code, notes, and snippets.

@salvatorecordiano
Last active February 28, 2023 18:18
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save salvatorecordiano/2fd5f4ece35e75ab29b49316e6b6a273 to your computer and use it in GitHub Desktop.
Save salvatorecordiano/2fd5f4ece35e75ab29b49316e6b6a273 to your computer and use it in GitHub Desktop.
Sample Telegram Bot (1)
<?php
$content = file_get_contents("php://input");
$update = json_decode($content, true);
if(!$update)
{
exit;
}
$message = isset($update['message']) ? $update['message'] : "";
$messageId = isset($message['message_id']) ? $message['message_id'] : "";
$chatId = isset($message['chat']['id']) ? $message['chat']['id'] : "";
$firstname = isset($message['chat']['first_name']) ? $message['chat']['first_name'] : "";
$lastname = isset($message['chat']['last_name']) ? $message['chat']['last_name'] : "";
$username = isset($message['chat']['username']) ? $message['chat']['username'] : "";
$date = isset($message['date']) ? $message['date'] : "";
$text = isset($message['text']) ? $message['text'] : "";
$text = trim($text);
$text = strtolower($text);
header("Content-Type: application/json");
$response = '';
if(strpos($text, "/start") === 0 || $text=="ciao")
{
$response = "Ciao $firstname, benvenuto!";
}
elseif($text=="domanda 1")
{
$response = "risposta 1";
}
elseif($text=="domanda 2")
{
$response = "risposta 2";
}
else
{
$response = "Comando non valido!";
}
$parameters = array('chat_id' => $chatId, "text" => $response);
$parameters["method"] = "sendMessage";
echo json_encode($parameters);
@parsec82
Copy link

Ciao!,
ho provato ad utilizzare il sample utilizzando le domande/risposte che servivano.
Quando viene utilizzato direttamente come bot va perfettamente ma avrei bisogno di poter fare rilevare i comandi anche quando viene usato il comando /domanda1@nomebot
in quanto nei testi ho fatto riferimento ad altri comandi e quando vengono cliccati invece di dare (come è scritto) /domanda1 appare /domanda1@nomebot
come è possibile risolvere tale problematica?

@salvatorecordiano
Copy link
Author

Ciao @parsec82, ho letto adesso il tuo commento.
Ti riferisci alle inline queries come indicato qui https://core.telegram.org/bots/inline?

Fammi sapere, a presto,
Salvatore

@isketch93
Copy link

isketch93 commented Sep 25, 2016

Ciao Salvatore,
Vorrei modificare questo sample per verificare se un server, di cui conosco l'indirizzo IP, sia online oppure no.
Su internet ho trovato una funzione (la seconda illustrata in questa pagina https://goo.gl/Cts2JN) che sembra fare al caso mio, ma non riesco a integrarla nel codice senza che il bot smetta completamente di funzionare. Sai come potrei riuscirci? O come potrei ottenere lo stesso risultato in un modo più semplice? Premetto di non sapere nulla di php, potrei aver sbagliato da inesperto un procedimento semplicissimo...

@gio700
Copy link

gio700 commented Jan 26, 2017

Ciao salvatore ,

come faccio per farmi dare un file da dropbox facendo la richiesta a bot?

@shadowkrad
Copy link

Ciao Salvatore sto usando questo script ma vorrei ottenere una risposta random anziche la risposta singola è possibile?

Grazie

@joxhn10
Copy link

joxhn10 commented Apr 25, 2020

ciao vorrei sapere se c'è una funzione che permette di prendere un messaggio scritto dall'utente al bot e inviarlo in privato all'admin del bot:

esempio:
l'utente entra nel bot e dice ciao
quel ciao voglio che vada anche all'admin del bot

@salvatorecordiano
Copy link
Author

Ciao @joxhn10! Si è possibile farlo. In pratica nel webhook leggi il messaggio che ti arriva e poi utlizzi l'API di sendMessage con destinatario l'admin

@joxhn10
Copy link

joxhn10 commented Apr 26, 2020 via email

@salvatorecordiano
Copy link
Author

salvatorecordiano commented Apr 26, 2020

Se metti insieme gli esempi che ci sono sui link in fondo al tutorial riesci a raggiungere l'obiettivo @joxhn10

@M4TT3O2007
Copy link

Avete altri codici? Da darmi?

@BebeWeasley
Copy link

Grazie mille @salvatorecordiano,
Non so nulla di programmazione, ma grazie alla tua guida sono riuscita a combinarci qualcosa con questo bot.
Però volevo fare un altro comando tipo quello /start, ho copiato la stringa del comando start fatta da te, ma poi mi dice "unexpected T-STRING". Sapresti come posso fare?

@salvatorecordiano
Copy link
Author

@BebeWeasley hai copiato probabilmente il codice con qualcosa in meno

@BebeWeasley
Copy link

@BebeWeasley hai copiato probabilmente il codice con qualcosa in meno

Sono abbastanza sicura di aver copiato bene perché ci ho provato già più volte, ho prima provato a metterlo dopo le varie domande e risposte da me inserite e poi ho provato a scriverlo dopo la stringa /start prima delle varie domande e risposte. Facendo la seconda però poi mi dà "unexpected T-ELSEIF', inoltre provando su telegram mettendo /start, mi dice "comando non valido"

@massimocascone
Copy link

Ciao, non ho esperienza di programmazione . Vorrei creare un bot che pone una domanda alla persona che accede e in automatico la risposta viene salvata ad esempio in uno sheet di google dopodichè all' utente appare un bottone che lo porta in un canale telegram.E' fattibile?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment