Привет всем.
Решил изучить PHP и TELEGRAM, тоесть изучаю создание бота на PHP
В общем присылаемые $data['message']['text'] норм отрабатывает, бот отвечает на тексты, и вот решил сделать инсайт кнопки, но не отвечает на них бот.
Пытаюсь отправить сообщение так:
if (mb_stripos($data['callback_query']['data'], '/yes_name') !== false) {
sendTelegram(
'sendMessage',
array(
'chat_id' => $chat_id,
'text' => $data['message']['chat']['first_name'] . " Отлично!!",
'reply_markup' => json_encode(array('inline_keyboard' => $keyboard))
)
);
exit();
}
На всякий случай весь код:
$data = file_get_contents('php://input');
$data = json_decode($data, true);
$fname = $data['message']['chat']['first_name']; // выделяем имя собеседника
$lname = $data['message']['chat']['last_name']; // выделяем фамилию собеседника
$uname = $data['message']['chat']['username']; // выделяем ник собеседника
$chat_id = $data['message']['chat']['id'];
if (true) {
error_reporting(E_ALL & ~(E_NOTICE | E_USER_NOTICE | E_DEPRECATED));
ini_set('display_errors', 1);
}
if (empty($data['message']['chat']['id'])) {
exit();
}
// Функция вызова методов API.
function sendTelegram($method, $response)
{
$ch = curl_init('https://api.telegram.org/bot' . TOKEN . '/' . $method);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $response);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
$keyboard = array(
array(
array("text"=>"Да","callback_data"=>'/yes_name'),
array("text"=>"Справочник бота ","callback_data"=>'/help')
)
);
// Ответ на текстовые сообщения.
if (!empty($data['message']['text'])) {
$name = $data['message']['chat']['first_name'];
if (mb_stripos($data['message']['text'], '/start') !== false) {
sendTelegram(
'sendMessage',
array(
'chat_id' => $chat_id,
'text' => $data['message']['chat']['first_name'] . " привет! \nДавай знакомиться - твое имя " . $data['message']['chat']['first_name'] ."?\n" . $data['callback_query']['id'],
'reply_markup' => json_encode(array('inline_keyboard' => $keyboard))
)
);
exit();
}
//Ответ на кнопки инсайт
} else if (!empty($data['callback_query']['data'])) {
if (mb_stripos($data['callback_query']['data'], '/yes_name') !== false) {
sendTelegram(
'sendMessage',
array(
'chat_id' => $chat_id,
'text' => $data['message']['chat']['first_name'] . " Отлично!!",
'reply_markup' => json_encode(array('inline_keyboard' => $keyboard))
)
);
exit();
}
}