Telegram бот на Laravel основы за час - Полный курс

Поділитися
Вставка
  • Опубліковано 20 сер 2024

КОМЕНТАРІ • 70

  • @ivan.silicin
    @ivan.silicin 7 місяців тому +2

    Хорошо что показал архитектуру, многие не заморачиваются. Спасибо, заслуженный лайк.

  • @VitaliyHAN
    @VitaliyHAN 2 роки тому +8

    Спасибо большое за видео. Все повторил, все работает.
    Есть рекомендации:
    1. Было бы здорово не пропускать создание моделей, контролеров и пр. Это займет не много времени, но спасает от 5 часов дебаггинга и поиска, что я сделал не так.
    2. Круто было бы организовать именно чат с разветвленным меню. К примеру простенький магазин с возможностью оплаты и тп. Интересно именно как архитектурно это построить.
    Спасибо, ждем еще видос! Жирный лайк твоей работе и подписка!

    • @devpovyshev
      @devpovyshev  2 роки тому +1

      Огромное спасибо за комментарий, я обязательно все учту

  • @kxf155
    @kxf155 2 роки тому +1

    Спасибо, очень мало таких видео по телеграму и Laravel, было бы круто если бы вы Дмитрий запилили полный гайд по созданию reusable компонента с моделями Canversation и вот этим вот всем.

  • @antohagobet4451
    @antohagobet4451 2 роки тому +1

    Круто! Хорошая тема, хотелось бы ещё увидеть подобные видео, про телеграмм ботов. А также ещё была бы интересна тема с парсерами в Laravel

  • @f47h3r
    @f47h3r 2 роки тому +1

    Оч круто! Правда в общем немного хаотично, но это наработается. Спасибо.

  • @dracula1347
    @dracula1347 Рік тому +1

    Assalamu alaykum bro, Thanks for video, absolutly usefull for me.
    👍👍👍

  • @qpmdb
    @qpmdb Рік тому

    Спасибо, очень круто!

  • @ArtDenis1993
    @ArtDenis1993 Рік тому

    Большое спасибо за видео, очень много полезного, жалко, что нет продолжения :(

  • @user-sj1ml4yp3o
    @user-sj1ml4yp3o Рік тому

    Крутой гайд, спасибо😀

  • @user-zi6in5by1p
    @user-zi6in5by1p 2 роки тому

    Ух ты, спасибо, так держать !

  • @kristink_zzz
    @kristink_zzz 8 місяців тому

    Каким образом можно осуществить такой функционал, бот по команде присылает текст с 4 кнопками, на кнопках написано, указать имя, указать фамилию, указать возраст, сводка. после нажатия на кнопку, он ждет ответ в чате, при отправке нашего сообщения он сохраняет его, и так происходит с каждой кнопкой, при нажатии на кнопку сводка к нам в чат отправляется сообщение, в котором находятся все данные, которые мы указали, нужно сделать так, чтобы каждый раз, при отправке сводки все данные сбрасывались, заранее спасибо за ответ(если ответите)?

    • @devpovyshev
      @devpovyshev  8 місяців тому

      Принцип такой же как мы работаем с botfather. Нажимаем например создать бота, он отправляет нам сообщение введите имя бота и сохраняет его у себя. Можно сделать так же. Есть таблица где будут храниться данные (имя, фамилия... и условный id кнопки которую человек нажал. Например 1 - имя, 2 - фамилия, в каждую кнопку мы добавляем свой id. Когда человек его нажимает, мы этот id сохраняем, когда человек вводит какой-то текст и id кнопки в таблице 1, значит мы записываем этот текст в имя и обратно выдаем список кнопок

  • @avazbeknematov86
    @avazbeknematov86 2 роки тому

    Я сделал телеграм-бота в Laravel и развернул его на хостинге. Но бот работает медленно. Почему?

  • @RusIvan2022
    @RusIvan2022 2 роки тому

    Спасибо за видео. Для себя открыл лог:: дебаг. Я создавал фаил и внего писал . Так же не пользовался событиями, почитаю о них. Ну и фишка про кнопки где галочка ставится. Я как понимаю клавиатура привязывается к отдельному сообщению по мессаге ид?

  • @JustChannel13
    @JustChannel13 4 місяці тому

    Может ответит кто
    Ошибка 302 Found
    Перенаправлений нет, только маршрут, который ловит POST и контроллер, что эти данные обрабатывает
    Бьюсь уже пару дней и не знаю, что уже сделать

    • @devpovyshev
      @devpovyshev  4 місяці тому

      У вас стоит middleware на этом маршруте?

    • @JustChannel13
      @JustChannel13 4 місяці тому

      @@devpovyshev я уже разобрался, спасибо) просто маршрут стоял в auth, а я и не заметил вообще. Два дня парился, оказалось все просто. Спасибо за видеоурок, все классно и понятно

  • @user-tl5wm1fx7b
    @user-tl5wm1fx7b Рік тому

    > Volodymyr Marakhovskyi:
    При отправке формы -ошибка 400,отправка происходит по http,а не https.

    • @devpovyshev
      @devpovyshev  Рік тому

      Я в принципе комментарии не удаляю, скорее сам Ютуб их блокирует по не понятной причине.
      Можно скинуть тайм код отправки формы? Если совсем все плохо, то в описании есть ссылка в Гите, где можно скачать все файлы из видно и применить

    • @user-tl5wm1fx7b
      @user-tl5wm1fx7b Рік тому

      @@devpovyshev Простите.Это Ютуб удаляет,когда выкладываешь код PHP :)

    • @user-tl5wm1fx7b
      @user-tl5wm1fx7b Рік тому

      @@devpovyshev заново ввел код, исправил предыдущие ошибки.При проверки вебхука через команду getWebhookInfo получаю ошибку в ответе
      Wrong response from the webhook 404 Not Found . Вебхук установлен

    • @devpovyshev
      @devpovyshev  Рік тому

      @@user-tl5wm1fx7b Ну ошибка то говорящая. Страница не найдена. Вебхук доступен в инете? Или ставишь на своем локальном хосте?

  • @raptorprincess609
    @raptorprincess609 2 роки тому

    Привет, при попытке запустить склонированный проект появляется ошибка :
    PHP Fatal error: Uncaught Illuminate\Contracts\Container\BindingResolutionException: Unresolvable dependency resolving [Parameter #1 [ $bot ]] in class App\Helpers\Telegram
    Исправил, добавив дефолтное значение для $bot в конструкторе Telegram, но не понимаю как это работает. Не могли бы пояснить?

    • @devpovyshev
      @devpovyshev  2 роки тому +2

      Привет. Не знаю как объяснить проще. Представь что твой друг на твой адрес заказал телефон, а когда телефон пришел, твоего друга уже не было и происходит конфликт

  • @ksalab
    @ksalab 2 роки тому

    PHP Fatal error: Uncaught Illuminate\Contracts\Container\BindingResolutionException: Unresolvable dependency resolving [Parameter #1 [ $bot ]] in class App\Helpers\Telegram
    как исправили?

    • @devpovyshev
      @devpovyshev  2 роки тому

      В этой
      github.com/AV2x/telegram_laravel/blob/master/app/Providers/AppServiceProvider.php#L19
      или в этой
      github.com/AV2x/telegram_laravel/blob/master/app/Helpers/Telegram.php#L14
      строчке нет $bot. Либо у вас $bot - null. Если bot - null Значит конфиг с ботом не передается. Советую в AppServiceProvider перед
      return new Telegram(new Http(), config('bots.bot'));
      поставить dd(config('bots.bot'));

    • @ksalab
      @ksalab 2 роки тому

      @@devpovyshev Благодарю!

    • @user-os1yo9yv6h
      @user-os1yo9yv6h 2 роки тому +1

      @@devpovyshev у меня точно такая же история, токен дампуется в месте про которое вы говорите, но почем-то не передаётся в конструктор, если поместить токен в сам класс Telegam - всё работает

    • @user-mv2qz4fd5t
      @user-mv2qz4fd5t Рік тому

      @@user-os1yo9yv6h Время идет а проблема непонятна. не могу в контроллер передать более чем одно значение [Parameter #1 [ $bot ]] и не важно даже если передаю текст или цыфру

  • @kekuopex5783
    @kekuopex5783 2 роки тому

    откуда он взял ссылка api telegram

  • @Tranzin40
    @Tranzin40 2 роки тому

    На отправке файлов выдает ошибку( A 'contents' key is required), сделал все как в видео но он ругается.
    А когда решил перейти к примеру с формами выдает ошибку
    could not find driver
    select * from `orders` where `public` = 1
    И не отображает формы, хотя сделал все как в видосе, хотя было много срезок так что точно не понятно.

    • @devpovyshev
      @devpovyshev  2 роки тому

      A 'contents' key is required
      Проверь в Http::attch(' ', 'Вот здесь')
      could not find driver
      в настройках php.ini найди где pdo и убери перед ним ;
      Если у тебя линукс, то php.ini лежит в /etc/php/php_актуальная версия/php.ini

    • @user-rb8ts7fo8m
      @user-rb8ts7fo8m 2 роки тому +1

      Такая же ерунда(ошибка( A 'contents' key is required)). заменил Storage::get на fopen('lalala', ''rb') и заработало, но не
      понял в чем косяк был.

    • @devpovyshev
      @devpovyshev  2 роки тому +1

      @@user-rb8ts7fo8m Думаю можно разобраться. А что в Storage::get было?

    • @user-rb8ts7fo8m
      @user-rb8ts7fo8m 2 роки тому

      @@devpovyshev Круто, спасибо за быструю реакцию! Было Storage::get('/public/'.$file), в $file cоотвественно '1.png'

    • @devpovyshev
      @devpovyshev  2 роки тому

      @@user-rb8ts7fo8m я думаю ошибка в http::atach. Скорее всего storage::get возвращает null. Можешь посмотреть dd(storage:get(файл); скорее всего там будет null. И тогда просто не находит файл. Более детально помочь не могу, не возле ПК

  • @gamingplay5415
    @gamingplay5415 Рік тому

    А как можно получить данные бота/канала и вывести их?

    • @devpovyshev
      @devpovyshev  Рік тому

      В смысле получить данные и вывести?

    • @gamingplay5415
      @gamingplay5415 Рік тому

      @@devpovyshev Нужна реализация список каналов. Есть некое количество каналов. То что необходимо это достучаться до канала/ов и просто вывести название/аватарку/описание/количество участников.

  • @k0repan0ff
    @k0repan0ff 2 роки тому

    Нет ли у вас примера где создается новый Auth вместо web и api, который по chat_id из webhook-а создает (если нет) или логинит user-а чтобы его можно было бы получать через стандартные $request->user()?

    • @devpovyshev
      @devpovyshev  2 роки тому

      Имеешь ввиду регистрация/авторизация пользователя по вебхуку по chat_id?

    • @k0repan0ff
      @k0repan0ff 2 роки тому

      @@devpovyshev да, как в случае с api авторизация по токену, так и тут только по chat_id. Чтобы в коде использовать штатные средства как будто юзер залогинен
      .

    • @devpovyshev
      @devpovyshev  2 роки тому +3

      @@k0repan0ff А, ну ответ тогда простой. Надо прикрыть те методы middleware auth (это уже должно быть в Laravel, в контроллере можно сделать $this->middleware('auth')) где необходимо авторизовать пользователя, а в AuthServiceProvider, необходимо взять из request chat_id, найти пользователя в базе по нему и сделать return этого пользователя. Я могу ошибаться, так как в Laravel не делал такую авторизацию. Но у меня есть видео Авторизация OAuth2, там почти так же как я описал, только вместо токена будет chat_id

  • @ara1393
    @ara1393 2 роки тому

    Благодарю за видио. Я не совсем понимаю - есть боты которые работают без laravel. А есть фреймворк на php с ларавел. Грубо говоря если мне нужен бот который только в телеграме работает мне не нужен тогда ларавел?

    • @devpovyshev
      @devpovyshev  2 роки тому

      Немного не понял. Что за фреймворк на php с laravel? Чтобы написать бота, фреймворк не нужен, у меня есть видео где на нативном php бота пишу. Зависит от задач, если что-то простое, можно без бота, но я рекомендую бота на lumen ставить

    • @Have476
      @Have476 4 місяці тому

      @@devpovyshev если ты не понял что такое фреймворк php и laravel То как ты умудряешься записывать такие видео) хорошо что зранаее не тратил время)) чудик а ты сейчас на чем написал бота?))) не На фреймворке Ларавель?)

    • @devpovyshev
      @devpovyshev  4 місяці тому

      @@Have476 Ты что, эксперимент инцеста? Он вообще про другое спросил, и я на него вопрос в другом таком же видео ответил. И комментарию уже 2 с лишним года - это тебя не смутило?

  • @dmdk8301
    @dmdk8301 Рік тому

    Спасибо за классное видео. Единственное интуитивно так и не понимаю с этими вебхуками - проект же на локальном сервере? А на хостинге может быть вообще пусто? Иными словами нужен лишь https урл? Нелогично. Эдак можно же вообще любой указать. Вроде внимательно смотрел, но этот момент упускаю.

    • @devpovyshev
      @devpovyshev  Рік тому

      Вебхук - 1. Это url куда приходят данные от бота. Кто-то нажал кнопку в боте, бот отправляет данные этой кнопки на вебхук, кто-то что-то написал боту, бот отправил это сообщение на вебхук.
      Вебхук может быть только на сервере, на локалку телеграм не сможет пробиться.

    • @dmdk8301
      @dmdk8301 Рік тому

      @@devpovyshev спасибо. Эту часть я конечно понимаю) но у Вас же на локалхосте проект. А вебхук это хостинг/сервер. Вот эту часть как раз я и не улавливаю. Если взять конкретно этот проект. У вас на сервере под этим url что-то же размещено? Обработчики, что? Не улавливаю.
      Как локалхост узнает что на https url пришли данные с телеграма?

    • @devpovyshev
      @devpovyshev  Рік тому

      @@dmdk8301 я понял в чем дело. Когда я дошел до вебхука, я перенес проект на сервер, и далее весь код я из phpshtorm, я писал на проекте который на сервере. В phpshtorm есть такая функция

    • @dmdk8301
      @dmdk8301 Рік тому

      @@devpovyshev "многое объясняет")))) вот паззл и сложился. Спасибо. Сегодня доделаю по образу и подобию)
      Пользуясь случаем - а в vs code есть такой плагин?

    • @devpovyshev
      @devpovyshev  Рік тому +1

      @@dmdk8301 vs code давно не пользовался. Не помню. У меня это в разделе deployment -> configuration. Часто пользуюсь, удобно

  • @pythondeveloper7525
    @pythondeveloper7525 2 роки тому

    ВЫ закончили уроки про Ларавел или еще будут?

    • @devpovyshev
      @devpovyshev  2 роки тому

      По Laravel пока все. Это были уроки по основным моментам, с помощью которых можно создавать уже собственные проекты. Конечно будут трудности и моменты о которых я не говорил, но все решаемо с помощью Google))

    • @devpovyshev
      @devpovyshev  2 роки тому

      Если есть идеи или сложности по Laravel, то всегда можно предложить)

    • @BookwormYevgen
      @BookwormYevgen 2 роки тому

      @@devpovyshev ага, например, как сделать документирование апи) сам апи реализовал, а вот документацию к нему теперь сделать малой кровью...

  • @user-ct6qd1og7x
    @user-ct6qd1og7x 7 місяців тому

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

  • @mastermoscow9785
    @mastermoscow9785 2 роки тому

    на какой версии laravel делаешь? уже на 12 минуте вылетает ошибка:Target class [hash] does not exist. (View: C:\OpenServer\domains\jett
    esources\views
    eport.blade.php)

    • @devpovyshev
      @devpovyshev  2 роки тому

      Версия у меня показана на первых секундах. У тебя ошибка скорее всего связана со сборкой ларавеля, у меня такое было уже не помню точно. Проще всего скачать мои исходники из описания, закинуть туда енв и сделать composer update

    • @ksalab
      @ksalab 2 роки тому

      только что повторил, все работает. Laravel v9.6

  • @Tranzin40
    @Tranzin40 2 роки тому

    даже сообщение не отправилось, проблема на первой же минуте
    Illuminate\Http\Client\PendingRequest::post(): Argument #1 ($url) must be of type string, array given, called in /home/miet/apps/u8202527-lab2/vendor/laravel/framework/src/Illuminate/Http/Client/Factory.php on line 394

    • @devpovyshev
      @devpovyshev  2 роки тому +1

      У тебя $url как массив получается, а должно быть строкой

    • @devpovyshev
      @devpovyshev  2 роки тому +1

      Скорее всего где http::post() у тебя массив а не строка с сылкой

    • @Tranzin40
      @Tranzin40 2 роки тому

      @@devpovyshev я не знаю как объяснить, но оно просто заработало, сейчас на 14 минуте, завтра продолжу.
      Ваще не думал что мне ответят, спасибо)