Skip to content

Instantly share code, notes, and snippets.

@salvatorecordiano
Last active May 5, 2020 13:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save salvatorecordiano/873c48328f91c459865632cf62e035bb to your computer and use it in GitHub Desktop.
Save salvatorecordiano/873c48328f91c459865632cf62e035bb to your computer and use it in GitHub Desktop.
Sample Telegram Bot (2)
<?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'] : "";
$response = '';
if(isset($message['text']))
{
$response = "Ho ricevuto il seguente messaggio di testo: " . $message['text'];
}
elseif(isset($message['audio']))
{
$response = "Ho ricevuto un messaggio audio";
}
elseif(isset($message['document']))
{
$response = "Ho ricevuto un messaggio document";
}
elseif(isset($message['photo']))
{
$response = "Ho ricevuto un messaggio photo";
}
elseif(isset($message['sticker']))
{
$response = "Ho ricevuto un messaggio sticker";
}
elseif(isset($message['video']))
{
$response = "Ho ricevuto un messaggio video";
}
elseif(isset($message['voice']))
{
$response = "Ho ricevuto un messaggio voice";
}
elseif(isset($message['contact']))
{
$response = "Ho ricevuto un messaggio contact";
}
elseif(isset($message['location']))
{
$response = "Ho ricevuto un messaggio location";
}
elseif(isset($message['venue']))
{
$response = "Ho ricevuto un messaggio venue";
}
else
{
$response = "Ho ricevuto un messaggio ?";
}
header("Content-Type: application/json");
$parameters = array('chat_id' => $chatId, "text" => $response);
$parameters["method"] = "sendMessage";
echo json_encode($parameters);
@HpoDeveloper
Copy link

HpoDeveloper commented Oct 12, 2016

Ciao Salvatore,
volevo chiederti come fare per ottenere latitudine e longitudine ed eventualmente il numero di telefono.
Inoltre ho notato che le variabili già da te settate non riesco ad inserirle nel messaggio di benvenuto.

$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'] : "";
$user_id = isset($message['user_id']) ? $message['user_id'] : "";
$phone_number = isset($message['chat']['phone_number']) ? $message['chat']['phone_number'] : "";
$location=$message['chat']['location'];
$text = trim($text);
$text = strtolower($text);

Se scrivo

if(strpos($text, "/start") === 0 || $text=="ciao")
{
$tastiera=0;
$response = "Ciao $firstname $lastname il tuo username è $username";
}

mi da il nome, il cognome ma non la username.
Da che può dipendere? E per la latitdine e longitudine come funziona?
Grazie mille anticipatamente.

@cpaolo
Copy link

cpaolo commented May 7, 2018

Salve, sono proprio un neofita in materia ma la trovo molto interessante. Spero non sia una domanda stupida ma non sono riuscito a trovare esempi.
Secondo lei è possibile fare in modo che un bot restituisca un valore contenuto in un file/tabella a seconda della richiesta ?
Mi spiego meglio, digito il nome di una persona e mi viene restituito l'indirizzo.

Grazie

Paolo

@danispringer
Copy link

@cpaolo si. fai un array dalla tabella e usa l'indice dato dall'utente per prelevare il valore voluto.

$tabella = array(
    0 => "via canini",
    1 => "corso virtuale",
    2 => "strada bona"
// etc
);

@Davide9908
Copy link

Ciao. Ho intenzione di fare un piccolo bot che funge da "amministratore" di un gruppo. In particolare questo bot, quando un utente entra nel gruppo, scrivere un messaggio come "benvenuto 'nome utente' nel gruppo, invia il comando '/ciao' entro 5 minuti, altrimenti verrai preventivamente cacciato dal gruppo come sospetto bot'. Quindi vorrei che l utente che entro x minuti dalla sua entrata non invia alcun comando, venga kickato dal gruppo (ovviamente il bot in questione avrà poteri di ammistrazione, mi sembra si possano dare ai bot giusto?). Che funzioni dovrei usare e come dovrei usarle per fare questa cosa? La vorrei fare per dei gruppi che ultimamente sono invasi da profili bot che spammano dei siti poco attinenti agli argomenti dei gruppi in questione
grazie in anticipo

@LCucciniello
Copy link

Ciao, grazie per il tuo aiuto.
Potresti anche condividere codice per vb.net o asp.net?
Lo stesso che hai già condiviso per PHP, cioè gestite getUpdates e nel caso si tratti di una immagine.un file, un video ecc. salvarlo su server (oppure su pc).
Grazie

@mrico27
Copy link

mrico27 commented May 5, 2020

perchè a me non va più?

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