<?php
require 'config.php';
function query($method, $data = NULL){
global $config;
$url = 'https://api.telegram.org/bot' .$config['telegram']['id'] .':' .$config['telegram']['key'] .'/' .$method;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
if($data){
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type:multipart/form-data"]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$response = curl_exec($ch);
if ($response === false) {
$errno = curl_errno($ch);
$error = curl_error($ch);
echo "Curl returned error $errno: $error\n";
curl_close($ch);
return FALSE;
}
$http_code = intval(curl_getinfo($ch, CURLINFO_HTTP_CODE));
curl_close($ch);
$response = json_decode($response, TRUE);
if($http_code != 200){
echo "Request has failed with error {$response['error_code']}: {$response['description']}\n";
if ($http_code == 401) {
throw new \Exception('Invalid access token provided');
}
return FALSE;
}else{
// $response = $response['result'];
}
return $response;
}
if(!isset($config) or $config['telegram']['id'] == 0 or strlen($config['telegram']['key']) < 32){
die("Please write your data in config.php before set webhook.\n");
}
if(!isset($_SERVER['HTTPS'])){
die("Run this setup in HTTPS!\n");
}
if(!isset($_SERVER['REQUEST_URI']) or empty($_SERVER['REQUEST_URI'])){
die("Run this setup via curl or web browser!");
}
$bot = query("getMe");
if($bot === FALSE){
die("Error while getting bot info, aborting.\n");
}
$boturl = "https://" .$_SERVER['HTTP_HOST'] .$_SERVER['REQUEST_URI'];
$boturl = dirname($boturl) .'/'; // Set directory
$data = ['url' => $boturl];
foreach(scandir(getcwd()) as $file){
$tmpname = strtolower($file);
$ext = substr($tmpname, -4);
if(in_array($ext, ['.pem', '.crt']) and is_readable($file)){
$data['certificate'] = new \CURLFile(realpath($file));
break;
}
}
$webhook = query("setWebhook", $data);
if($webhook === FALSE){
die("Error setting webhook.\n");
}
echo $webhook['description'];
if(isset($data['certificate'])){
echo ' with certificate file';
}
if($webhook['result'] == TRUE){
echo ' to ' .$boturl;
}
echo "\n";
unlink(__FILE__);
if(file_exists(__FILE__)){
die("Could not delete setup, please delete it manually!\n");
}
?>
|