Подскажите, пожалуйста как написать простой сценарий для бота, например:
написал команду "/test",
бот спрашивает: "Вы уверены?"
пишешь в ответ: "Да"
бот отправляет следующее сообщение по сценарию, если пишешь "нет" - сценарий заканчивается.
Важно, что бы мой ответ "Да" не обрабатывался ботом, пока он не спросит "Вы уверены?"(после команды /test)
$access_token = '...';
$api = 'https://api.telegram.org/bot' . $access_token;
$output = json_decode(file_get_contents('php://input'), TRUE);
$chat_id = $output['message']['chat']['id'];
$first_name = $output['message']['chat']['first_name'];
$message = $output['message']['text'];
switch($message) {
case '/test':
sendMessage($chat_id, "Вы уверены?");
break;
default:
$sorry_text = $first_name . ' , мне нечего ответить';
sendMessage($chat_id, $sorry_text);
}
function sendMessage($chat_id, $message, $encodedMarkup) {
file_get_contents($GLOBALS['api'] . '/sendMessage?chat_id=' . $chat_id . '&text=' . urlencode($message) . $encodedMarkup);
}
Понял, что это делается через ForceReply, но как пока не разобрался.
UPDATE
сделал inline keybord, но пока не понял как выводить сообщение в зависимости от нажатой кнопки
case '/test':
$x1 = array("text"=>"First Button","callback_data"=>"test1");
$x2 = array("text"=>"Second Button","callback_data"=>"test2");
$opz = [[$x1,$x2]];
$keyboard=array("inline_keyboard"=>$opz);
$keyboard = json_encode($keyboard);
sendMessage($chat_id, "testt2", $keyboard);
break;
т.е. сейчас при нажатии на кнопку ничего не вывыодится
Ответ
Вот рабочий код, если кому нужен.
"Google url","url"=>"http://google.com");
$inline_button2 = array("text"=>"work plz","callback_data"=>'/plz');
$inline_keyboard = [[$inline_button1,$inline_button2]];
$keyboard=array("inline_keyboard"=>$inline_keyboard);
$replyMarkup = json_encode($keyboard);
sendMessage($chat_id, "ok", $replyMarkup);
break;
}
switch($data){
case '/plz':
sendMessage($chat_id_in, "plz");
break;
}
function sendMessage($chat_id, $message, $replyMarkup) {
file_get_contents($GLOBALS['api'] . '/sendMessage?chat_id=' . $chat_id . '&text=' . urlencode($message) . '&reply_markup=' . $replyMarkup);
}
Комментариев нет:
Отправить комментарий