Как сделать Telegram bot который выводит информацию из бд |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Как сделать Telegram bot который выводит информацию из бд |
sunrise
|
18.3.2017, 21:34
Сообщение
|
|
|
изи
Скрытый текст Код <?php тут данные от бд try { $dbh = new PDO('mysql:host='.$db_host.';dbname='.$db_db, $db_user, $db_pass); $dbh->query('SET NAMES utf8'); } catch (PDOException $e) { die('Подключение не удалось: ' . $e->getMessage()); } /** * URL-адрес бота и его маркер. */ $access_token = 'тут токен'; $api = 'https://api.telegram.org/bot' . $access_token; /** * Зададим основные переменные. */ $output = json_decode(file_get_contents('php://input'), TRUE); // Получим то, что передано скрипту ботом в POST-сообщении и распарсим $chat_id = $output['message']['chat']['id']; // Выделим идентификатор чата $first_name = $output['message']['chat']['first_name']; // Выделим имя собеседника $message = $output['message']['text']; // Выделим сообщение собеседника /** * Получим команды от пользователя. * Переведём их для удобства в нижний регистр */ switch(strtolower_ru($message)) { case '/raspisanie': sendMessage($chat_id, 'выберите группу'); break; break; default: if($message) { $predmeti = ''; $day = (date('G') > 17) ? date('l', strtotime(' +1 day')) : date('l'); foreach($dbh->query("SELECT * FROM `rasp` WHERE grup = '{$message}' AND `day_of_week` = '{$day}' AND `evening` = false") as $value2) { $predmeti .= $value2['text'] . ' '; } echo $predmeti; // отправка юзеру } else { // оправляем юзеру ошибку } break; } /** * Функция отправки сообщения в чат sendMessage(). */ function sendMessage($chat_id, $message) { file_get_contents($GLOBALS['api'] . '/sendMessage?chat_id=' . $chat_id . '&text=' . urlencode($message)); } /** * Функция перевода символов в нижний регистр, учитывающая кириллицу */ function strtolower_ru($text) { $alfavitlover = array('ё','й','ц','у','к','е','н','г', 'ш','щ','з','х','ъ','ф','ы','в', 'а','п','р','о','л','д','ж','э', 'я','ч','с','м','и','т','ь','б','ю'); $alfavitupper = array('Ё','Й','Ц','У','К','Е','Н','Г', 'Ш','Щ','З','Х','Ъ','Ф','Ы','В', 'А','П','Р','О','Л','Д','Ж','Э', 'Я','Ч','С','М','И','Т','Ь','Б','Ю'); return str_replace($alfavitupper,$alfavitlover,strtol[/php]ower($text)); } ?> ReplyKeyboardMarkup посл. ответ на стаковерфлоу.
Отредактировал: sunrise, - 18.3.2017, 21:37
![]() pick rylai pls
|
Поблагодарили 1 раз
|
|
![]() ![]() |