Делаю бота для telegram!
Суть бота: другим ботам давать готовый набор функции(рассылки).
Столкнулся с такой проблемой: файл нового бота создается, но взамен выполнения отображается
сам код.
Вот сам код:
<?php
header('Content-Type: text/html; charset=utf-8');
require 'vendor/autoload.php';
$token = "111111:TOK-EN";
$bot = new \TelegramBot\Api\Client($token);
if(!file_exists("registered.trigger")){
$page_url = "https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
$result = $bot->setWebhook($page_url);
# GET RESULT
if($result){
file_put_contents("registered.trigger",time()); // CREATE FILE
}
}
$bot->callbackQuery(function ($callbackQuery) use ($bot) {
switch ($callbackQuery->getData()){
case 'lets_go':
$msg = "1. Перейдите в @BotFather и создайте нового бота.\n\n2. Скиньте токен созданного бота(такого вида 123456:ABC-DEf1234gh...), используй команду /sendtoken <token>";
$id = $callbackQuery->getMessage()->getChat()->getId();
file_put_contents("step_$id.trigger", time());
break;
default:
$msg = 'BOT.ERROR #019101801';
break;
}
$bot->sendMessage($callbackQuery->getMessage()->getChat()->getId(), $msg);
});
$bot->command('start', function ($message) use ($bot) {
$key = new \TelegramBot\Api\Types\Inline\InlineKeyboardMarkup([
[
['callback_data' => 'lets_go', 'text' => 'Начнем']
]
]);
$answer = "Я помогаю контроллировать сотрудников через чаты.\n\nНапоминаю нужны людям в нужные дни, что им нужно делать. Попробуй меня и напиши @alantsoff отзыв обо мне.";
$bot->sendMessage($message->getChat()->getId(), $answer, null, false, null, $key);
});
$bot->command('sendtoken', function ($message) use ($bot) {
$newbot_token = str_replace('/sendtoken ', '', $message->getText());
$name = (int) filter_var($newbot_token, FILTER_SANITIZE_NUMBER_INT);
if($newbot_token !== ''){
if(!file_exists("bots/bot_$name.php")){
$l1 = 'header(\'Content-Type: text/html; charset=utf-8\');';
$l2 = 'require \'vendor/autoload.php\';';
$l3 = '$token = '.$newbot_token.';';
$l4 = '$bot = new \TelegramBot\Api\Client($token);';
$l5 = 'if(!file_exists("registered_'.$name.'.trigger")){';
$l6 = '$page_url = "https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]."bots/bot_'.$name.'.php";';
$l7 = '$result = $bot->setWebhook($page_url);';
$l8 = 'if($result){';
$l9 = 'file_put_contents("registered_'.$name.'.trigger",time());';
$l10 = '}';
$l11 = '}';
$l12 = '$bot->command(\'start\', function ($message) use ($bot) {';
$l13 = '$answer = "Дороу";';
$l14 = '$bot->sendMessage($message->getChat()->getId(), $answer);';
$l15 = '});';
$code = $l1 . ' ' . $l2. ' ' . $l3. ' ' . $l4. ' ' . $l5. ' ' . $l6. ' ' . $l7. ' ' . $l8. ' ' . $l9. ' ' . $l10. ' ' . $l11. ' ' . $l12. ' ' . $l13. ' ' . $l14. ' ' . $l15;
$file = "./bots/bot_$name.php";
file_put_contents($file, $code);
$c = curl_init("https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]."bots/bot_$name.php");
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($c);
if($result) $bot->sendMessage($message->getChat()->getId(), 'Готово');
}
}else{
$bot->sendMessage($message->getChat()->getId(), 'Укажите токен!');
}
});
$bot->run();
И если не сложно, дайте подсказку, как избавится от говнокода