Innitial commit
This commit is contained in:
commit
f1739d55c3
28
README.md
Normal file
28
README.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# telegram-php-webhook
|
||||||
|
PHP Webhook for telegram bots
|
||||||
|
|
||||||
|
## Install
|
||||||
|
Create a bot using the botfather (https://core.telegram.org/bots/tutorial)
|
||||||
|
Set the bot webhook using setWebhook.
|
||||||
|
|
||||||
|
Ea:
|
||||||
|
```
|
||||||
|
curl -F "url=https://<DOMAIN.TLD>/<YOUR_WEBHOOK_PHP>" https://api.telegram.org/bot<BOT_ID>/setWebhook
|
||||||
|
```
|
||||||
|
|
||||||
|
Afterwards check if the webhook info is set properly on https://api.telegram.org/bot<BOT_ID>/getWebhookInfo
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
Only thing to set is the BOT ID in the code.
|
||||||
|
```
|
||||||
|
$TELEGRAM_BOT = '15560000000:AAFoWcuFvqXXXXXXXXXXXXXXXXXXXXX';
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
You can use the following commands as an example:
|
||||||
|
/ping
|
||||||
|
/time
|
||||||
|
/chatid
|
||||||
|
/picture
|
||||||
|
|
||||||
|
You can easily add more in the case statement in the code.
|
81
telegram_webhook.php
Normal file
81
telegram_webhook.php
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
Author: info@meer-web.nl
|
||||||
|
Web: https://meer-web.nl
|
||||||
|
|
||||||
|
#URL to get the webhook info
|
||||||
|
https://api.telegram.org/bot<BOT_ID>/getWebhookInfo
|
||||||
|
# URL to set the webhook
|
||||||
|
curl -F "url=https://<DOMAIN.TLD>/<YOUR_WEBHOOK_PHP>" https://api.telegram.org/bot<$TELEGRAM_BOT>/setWebhook
|
||||||
|
|
||||||
|
# COMMANDS for botfather to take in
|
||||||
|
help - Show help
|
||||||
|
ping - Check keepalive
|
||||||
|
time - Shows the current time.
|
||||||
|
picture - Reply with a picture
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Telegram function for posting text.
|
||||||
|
function telegram($msg) {
|
||||||
|
global $TELEGRAM_BOT,$TELEGRAM_CHATID;
|
||||||
|
$url='https://api.telegram.org/bot'.$TELEGRAM_BOT.'/sendMessage';$data=array('chat_id'=>$TELEGRAM_CHATID,'text'=>$msg);
|
||||||
|
$options=array('http'=>array('method'=>'POST','header'=>"Content-Type:application/x-www-form-urlencoded\r\n",'content'=>http_build_query($data),),);
|
||||||
|
$context=stream_context_create($options);
|
||||||
|
$result=file_get_contents($url,false,$context);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Telegram function for posting images.
|
||||||
|
function telegram_pic($msg, $caption) {
|
||||||
|
global $TELEGRAM_BOT,$TELEGRAM_CHATID;
|
||||||
|
$url='https://api.telegram.org/bot'.$TELEGRAM_BOT.'/sendPhoto';$data=array('chat_id'=>$TELEGRAM_CHATID,'photo'=>$msg,'caption'=>$caption);
|
||||||
|
$options=array('http'=>array('method'=>'POST','header'=>"Content-Type:application/x-www-form-urlencoded\r\n",'content'=>http_build_query($data),),);
|
||||||
|
$context=stream_context_create($options);
|
||||||
|
$result=file_get_contents($url,false,$context);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set your Bot ID and Chat ID.
|
||||||
|
$TELEGRAM_BOT='123456789:ABCDEFXXXXXXXXXXXXXXXXXXXXX';
|
||||||
|
|
||||||
|
$TELEGRAM_API = "https://api.telegram.org/bot$TELEGRAM_BOT";
|
||||||
|
$TELEGRAM_RCV = json_decode(file_get_contents("php://input"), TRUE);
|
||||||
|
|
||||||
|
// ChatID needed to reply in the same chat
|
||||||
|
$TELEGRAM_CHATID = $TELEGRAM_RCV["message"]["chat"]["id"];
|
||||||
|
|
||||||
|
// Fetch the first word, ea for commands
|
||||||
|
$MESSAGE = explode(" ", strtolower($TELEGRAM_RCV["message"]["text"]));
|
||||||
|
|
||||||
|
$MESSAGE_FULL = $TELEGRAM_RCV["message"]["text"];
|
||||||
|
$MESSAGE_FULL = substr(strstr("$MESSAGE_FULL"," "), 1);
|
||||||
|
|
||||||
|
// Trim off botname
|
||||||
|
if(strpos($MESSAGE[0], '@') !== false){
|
||||||
|
$COMMAND = explode('@', $MESSAGE[0]);
|
||||||
|
$COMMAND = $COMMAND[0];
|
||||||
|
} else {
|
||||||
|
$COMMAND = $MESSAGE[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reply
|
||||||
|
switch ($MESSAGE[0]) {
|
||||||
|
case '/ping':
|
||||||
|
// Friendly reply
|
||||||
|
telegram("Hi!");
|
||||||
|
break;
|
||||||
|
case '/time':
|
||||||
|
// Send current time
|
||||||
|
$now = date('d-m-Y H:i:s');
|
||||||
|
telegram("The current time is $now");
|
||||||
|
break;
|
||||||
|
case '/chatid':
|
||||||
|
// Show chatid
|
||||||
|
telegram("$TELEGRAM_CHATID");
|
||||||
|
break;
|
||||||
|
case '/picture':
|
||||||
|
// Reply image (use of different function)
|
||||||
|
telegram_pic("URL OF IMAGE","YOUR CAPTION");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
?>
|
Loading…
Reference in New Issue
Block a user