SEO Сообщество: Спрашивайте и помогайте

Присоединяйтесь к сообществу профессиональных веб-мастеров PR-CY, отвечайте на вопросы коллег и задавайте свои.

Q&A SEO

Телеграмм бот на php как отработать нажатие кнопок

mrak7575 mrak7575  
326
  10.05.2023 20:56       1 235    

в общем такая беда в гугле  не смог найти толковые ответы  gpt чат выдаёт разны ответы , даже на свои собственные ответы он всегда находит ошибки (если задать заново вопрос)

упращенный код с которым я работаю , принцы , пользователь пишет "топ" (без ковычек) выходит меню количество и 3 кнопки 1.5.10 / при нажатии кнопок нужно записать в переменную n / для проверки добавил при нажатии 10 выводить сообщение "запомнил" НО оно не работает , весь код раз 20 отправлял в чат бота , он вечно делает поправки , но код не пашет , что то я не вдупляю , куда чего добавить то  ОКАЗЫВАЕТСЯ , что на этом форуме 2000 символов ограничение , по этому код будет  ниже в коментах 

              

Ответы на пост (1) Написать ответ
mrak7575 mrak7575
326
10.05.2023 20:57
<?php
$data = json_decode(file_get_contents('php://input'), TRUE);
define('TOKEN', 'мой токен');
switch ($message)
{
case 'топ':
$method = 'sendMessage';
$send_data = [
'text' => 'количество',
'reply_markup' => json_encode([
'inline_keyboard' => [
[['text' => '1', 'callback_data' => 'test_1'],
['text' => '5', 'callback_data' => 'test_5'],
['text' => '10', 'callback_data' => 'test_10']]
]
])
];
if (strpos($data['callback_query']['data'], 'test_') === 0) {
if ($data['callback_query']['data'] == 'test_1') {
$n = 1;
} elseif ($data['callback_query']['data'] == 'test_5') {
$n = 5;
} elseif ($data['callback_query']['data'] == 'test_10') {
$n = 10;
$method = 'sendMessage';
$send_data = ['text' => 'запомнил'];
}
}


break;


default:
$method = 'sendMessage';
$send_data = [
'text' => 'Не понимаю о чем вы :(',


];
break;

}

$send_data['chat_id'] = $data['chat']['id'];

$res = sendTelegram($method, $send_data);

$homepage = file_get_contents('file.txt');
//echo '
', $homepage, '
';
$cours =json_decode($homepage, true);
$kur = $cours['update_id']['message']['message_id'];

function sendTelegram($method, $data, $headers = [])
{
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://api.telegram.org/bot' . TOKEN . '/' . $method,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => array_merge(array("Content-Type: application/json"), $headers)
]);

$result = curl_exec($curl);
curl_close($curl);
return (json_decode($result, 1) ? json_decode($result, 1) : $result);


}







?>
0