Closed ExsyDev closed 4 years ago
Вы точно чтото делаете неправильно, потому как callback нужен для инлайн кнопок в сообщениях, но никак не для самих сообщений или же обычных клавиатурных кнопок.
Вы точно чтото делаете неправильно, потому как callback нужен для инлайн кнопок в сообщениях, но никак не для самих сообщений или же обычных клавиатурных кнопок.
Как тогда проверять и создавать диалоги между ботом и пользователем?
ну для команд у вас есть обработчики типа
$bot->command('echo', function ($message) use ($bot) {
$text = 'Привет, вы выполнили команду /echo';
$bot->sendMessage($message->getChat()->getId(), $text);
});
а если получаете просто ввод текста, то так
try {
$bot = new \TelegramBot\Api\Client($tbotkey);
$bot->on(function ($Update) use ($bot) {
$msg_text = $message->getText();
$bot->sendMessage($message->getChat()->getId(), 'Вы написали мне: '.$msg_text);
}, function () { return true; });
//Webhook handler
$bot->run();
} catch (Exception $e) {
echo $e->getMessage();
}
если у вас сложные диалоги то вы можете сохранять ввод в базу mysql и потом на основе каких то данных формировать ответы или рассылки
ну для команд у вас есть обработчики типа
$bot->command('echo', function ($message) use ($bot) { $text = 'Привет, вы выполнили команду /echo'; $bot->sendMessage($message->getChat()->getId(), $text); });
а если получаете просто ввод текста, то так
try { $bot = new \TelegramBot\Api\Client($tbotkey); $bot->on(function ($Update) use ($bot) { $msg_text = $message->getText(); $bot->sendMessage($message->getChat()->getId(), 'Вы написали мне: '.$msg_text); }, function () { return true; }); //Webhook handler $bot->run(); } catch (Exception $e) { echo $e->getMessage(); }
если у вас сложные диалоги то вы можете сохранять ввод в базу mysql и потом на основе каких то данных формировать ответы или рассылки
Благодарю, а как это удобнее всего можно сделать с точки зрения паттернов? Например в BotMan есть классы диалогов, при помощи которых можно легко создавать диалоги. Я использую Laravel, и хотелось бы чтобы это не было все в одном файле
Благодарю, а как это удобнее всего можно сделать с точки зрения паттернов? Например в BotMan есть классы диалогов, при помощи которых можно легко создавать диалоги. Я использую Laravel, и хотелось бы чтобы это не было все в одном файле
По паттернам и фреймворкам у меня вообще знаний нет, все пишу руками как мне удобно. Вероятно вам нужна какая нибудь другая библиотека которая будет является расширением Laravel, скорее всего такие уже есть.
Здравствуйте, помогите разобраться, для чего необходимо вызывать метод answerCallbackQuery в обработчике callback?
$bot->on(function($update) use ($bot){ $callback = $update->getCallbackQuery(); $bot->sendMessage(...); $bot->answerCallbackQuery($callback->getId()); });
Без него сообщение не отправляется, а если добавляю answerCallbackQuery, то все работает.