Всем привет, решил попробовать написать первого ТГ бота на PHP. Смотрю документацию, пишу код, ставлю вебхук. Короче, вроде всё хорошо идёт. Решил проверить результат. При отправке команды "/start" боту, в ответ приходят не все сообщения (всего должно прийти 3 меседжа). Только через некоторое время (как правило, пару минут) приходят "опоздавшие на поезд" сообщения от бота, при этом несколько раз (т.е. они дублируются). В инете ничего дельного не нашёл. Может кто-то сталкивался, или знает, как это разрулить? Код бота прикрепил ниже. Говорят, что здесь хорошее комьюнити. Надеюсь на вас, ребята.
<?php
$token = '';
$data = json_decode(file_get_contents("php://input"), true);
//file_put_contents('log2.txt', '$data: '.print_r($data, 1)."\n", FILE_APPEND);
function sqliQuery($query){
$db = mysqli_connect('localhost', '', '', '');
if(!$db){
return('Error');
}
$result = mysqli_query($db, $query);
mysqli_close($link);
return $result;
}
function sendMess($message, $user_id){
global $token;
file_get_contents('https://api.telegram.org/bot'.$token.'/sendMessage?chat_id='.$user_id.'&text='.$message);
}
function sendKeyboard($message, $keyboard, $user_id){
global $token;
file_get_contents('https://api.telegram.org/bot'.$token.'/sendMessage?chat_id='.$user_id.'&text='.$message.'&reply_markup='.$keyboard);
}
if($data['message']){
$message = $data['message']['text'];
$user_id = $data['message']['chat']['id'];
$name = $data['message']['chat']['first_name'];
}
elseif($data['callback_query']){
$message = $data['callback_query']['data'];
$user_id = $data['callback_query']['from']['id'];
$name = $data['callback_query']['from']['first_name'];
}
switch ($message) {
case '/start':
$qwery = sqliQuery("SELECT * FROM `user` WHERE `tg_id_user`='$user_id'");
if(mysqli_num_rows($qwery)>0){
sendMess('Привет, '.$name.'!', $user_id);
sendMess('Это тестовый бот и я работаю, возможно даже с первого раза.', $user_id);
$keyboard = json_encode(array('inline_keyboard' => array(array(array('text' => '✅ Ага','callback_data' => 'reg1',),array('text' => '❌ Не, боюсь!',callback_data => 'reg2',),),),));
sendKeyboard('Зарегать?', $keyboard, $user_id);
}
break;
case 'reg1':
sqliQuery("INSERT INTO `user` (`tg_id_user`, `regdate`) VALUES('$user_id', '".time()."')");
sendKeyboard('Зарегал, лол.', $user_id);
break;
case 'reg2':
sendKeyboard('Ладно, нет так нет.', $user_id);
break;
}