Владимир Фетисов

Прототипирование

Адаптивная вёрстка

Программирование

SEO продвижение

Реклама, таргет

UX/UI интерфейсы


СКРЫТЬ

ПОКАЗАТЬ
Владимир Фетисов

Прототипирование

Адаптивная вёрстка

Программирование

SEO продвижение

Реклама, таргет

UX/UI интерфейсы

Блог

PHP Telegram bot + Laravel разработка с нуля `Урок – 10`

PHP Telegram bot + Laravel разработка с нуля `Урок – 10`

Статья на Яндекс Дзен, подписывайтесь!

В этом уроке научимся данные пользователей, определять обращался ли человек к боту ранее и будем использовать несколько вариантом приветствия.

Сохранение пользователей

Работать с базой данных будем через соответствующую модель пользователя телеграм, для этого прокинем её через конструктор.

Прокидываем модель телеграм юзера через конструктор
Прокидываем модель телеграм юзера через конструктор

Теперь получим всю информацию о пользователе через
$this->getUpdate()->message->from
И сохраним его уникальный ID для дальнейшего поиска в БД

Получаем данные юзера и сохраняем его ID
Получаем данные юзера и сохраняем его ID

Далее пробуем найти пользователя в БД через метод where(), подробнее о работе с базой данных через модели в Laravel можно почитать в официальной документации

Пробуем найти пользователя в БД
Пробуем найти пользователя в БД

Если пользователя в БД нет, нам вернется null, значит можем поставить условие и создать в таком случаи новую запись в БД.

Проверяем нашелся ли пользователь
Проверяем нашелся ли пользователь

Вынесем добавление пользователя в отдельный метод addNewTelegramUser и передадим в него $userData.
Далее при помощи метода insert нашей модели телеграм пользователя добавим запись, передав массив со всеми необходимыми полями.

Метод добавления нового пользователя телеграм в базу данных
Метод добавления нового пользователя телеграм в базу данных

Уже можем попробовать запустить команду /start в боте и убедиться что пользователь действительно был добавлен.

Откроем таблицу пользователей и увидим что новый пользователь уже сохранен, отлично!

Проверяем добавилась ли новая запись в БД
Проверяем добавилась ли новая запись в БД

Определяем нового и старого пользователя

Немного изменим наше условие, теперь если мы нашли юзера будем вызывать метод sendAnswerForOldUsers, а если нет – sendAnswerForNewUsers

Меняем условие
Меняем условие

Напишем метод, который будет отвечать старому пользователю. Пусть он отправляет сообщение: Рады видеть вас снова!🥳

Отвечаем старому пользователю
Отвечаем старому пользователю

Попробуем запустить команлу /start в боте и убедимся что все работает.

Проверяем ответ старому пользователю
Проверяем ответ старому пользователю

Мы можем легко удалить уже созданную запись прямо в PhpStorm, для этого открываем таблицувыделяем нужную запись, можно и несколько, жмём на “-“ и зеленую стрелку, готово👌

Удаляем запись пользователя из базы данных в PhpStorm
Удаляем запись пользователя из базы данных в PhpStorm

Теперь можно написать метод для отправки сообщений новым пользователям и протестируем его работу.

Метод отправки сообщения новым пользователям
Метод отправки сообщения новым пользователям

Как видим мы получили новый ответ, при этом если попробуем выполнить команду /start еще раз, уже получим ответ для старого пользователя! Отлично, значит все работает как нужно)

Проверяем работу телеграм бота
Проверяем работу телеграм бота

Раз уж мы научились сохранять пользователей и работать с ними, нам ничего не мешает добавить и выбор языка, но об этом в следующем уроке!

Подписывайтесь на канал, задавайте свои вопросы в комментариях, отвечаю всем!)

Ссылка на commit из 10 урока

Полезные ссылки

Taggs:
Написать комментарий