Вот тебе кусок рабочего кода:
Дальше думай сам, обрати внимание на порядок приема входных значений.
<?php
set_time_limit (0);
define('TOKEN', '');
class TG {
public $token = '';
public function __construct($token) {
$this->token = $token;
}
public function send($id, $message, $kb) {
$data = array(
'chat_id' => $id,
'text' => $message,
'parse_mode' => 'HTML',
'disable_web_page_preview'=>true,
'reply_markup' => json_encode(array('inline_keyboard' => $kb))
);
$this->request('sendMessage', $data);
}
public function editMessageText($id, $m_id, $m_text, $kb=''){
$data=array(
'chat_id' => $id,
'message_id' => $m_id,
'parse_mode' => 'HTML',
'text' => $m_text
);
if($kb)
$data['reply_markup']=json_encode(array('inline_keyboard' => $kb));
$this->request('editMessageText', $data);
}//редактировать сообщение по id
public function editMessageReplyMarkup($id, $m_id, $kb){
$data=array(
'chat_id' => $id,
'message_id' => $m_id,
'reply_markup' => json_encode(array('inline_keyboard' => $kb))
);
$this->request('editMessageReplyMarkup', $data);
}
public function answerCallbackQuery($cb_id, $message) {
$data = array(
'callback_query_id' => $cb_id,
'text' => $message
);
$this->request('answerCallbackQuery', $data);
}
public function sendChatAction($id,$action='typing') {
$data = array(
'chat_id' => $id,
'action' => $action
);
$this->request('sendChatAction', $data);
}
public function request($method, $data = array()) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.telegram.org/bot' . $this->token . '/' . $method);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$out = json_decode(curl_exec($curl), true);
curl_close($curl);
return $out;
}
}
$body = file_get_contents('php://input');
$arr = json_decode($body, true);
$tg = new tg(TOKEN);
$tg_id = $arr['message']['chat']['id'];
$callback_query = $arr['callback_query'];
$data = $callback_query["data"];
$message_text = $arr['message']['text'];
$chatId = $callback_query["message"]["chat"]["id"]; if($chatId!==''){$tg_id = $arr['message']['chat']['id'];}
$rez_kb = array();
switch($data){
case '/downyes':
sendTelegram('sendMessage', array('chat_id' => $chatId ,'text' => 'получить треклист текстом'));
exit('ok');
case '/downno':
sendTelegram('sendMessage', array('chat_id' => $chatId ,'text' => 'получить трек из поиска'));
exit('ok');
}
$tg->sendChatAction($tg_id);
$sms_rev='';
$tg->send($tg_id, $sms_rev, $rez_kb);
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;
}
if (!empty($data['message']['text'])) {
$text = $data['message']['text'];
if (mb_stripos($text, '/download') !== false) {
$inline = array("text"=>"\xE2\x9C\x85 ДА","callback_data"=>"/downyes");
$inline1 = array("text"=>"\xF0\x9F\x9A\xAB НЕТ","callback_data"=>"/downno");
$inline_keyboard = [[$inline,$inline1]];
$keyboard=array("inline_keyboard"=>$inline_keyboard);
$replyMarkup = json_encode($keyboard);
sendTelegram(
'sendMessage',
array(
'chat_id' => $data['message']['chat']['id'],
'parse_mode' => 'html',
'reply_markup' =>$replyMarkup,
'text' => '🤖 Вы уверены что хотите скачать плейлист?'
)
);
}
}