Спасибо большое за видео. Все повторил, все работает. Есть рекомендации: 1. Было бы здорово не пропускать создание моделей, контролеров и пр. Это займет не много времени, но спасает от 5 часов дебаггинга и поиска, что я сделал не так. 2. Круто было бы организовать именно чат с разветвленным меню. К примеру простенький магазин с возможностью оплаты и тп. Интересно именно как архитектурно это построить. Спасибо, ждем еще видос! Жирный лайк твоей работе и подписка!
Спасибо, очень мало таких видео по телеграму и Laravel, было бы круто если бы вы Дмитрий запилили полный гайд по созданию reusable компонента с моделями Canversation и вот этим вот всем.
Спасибо за видео. Для себя открыл лог:: дебаг. Я создавал фаил и внего писал . Так же не пользовался событиями, почитаю о них. Ну и фишка про кнопки где галочка ставится. Я как понимаю клавиатура привязывается к отдельному сообщению по мессаге ид?
Каким образом можно осуществить такой функционал, бот по команде присылает текст с 4 кнопками, на кнопках написано, указать имя, указать фамилию, указать возраст, сводка. после нажатия на кнопку, он ждет ответ в чате, при отправке нашего сообщения он сохраняет его, и так происходит с каждой кнопкой, при нажатии на кнопку сводка к нам в чат отправляется сообщение, в котором находятся все данные, которые мы указали, нужно сделать так, чтобы каждый раз, при отправке сводки все данные сбрасывались, заранее спасибо за ответ(если ответите)?
Принцип такой же как мы работаем с botfather. Нажимаем например создать бота, он отправляет нам сообщение введите имя бота и сохраняет его у себя. Можно сделать так же. Есть таблица где будут храниться данные (имя, фамилия... и условный id кнопки которую человек нажал. Например 1 - имя, 2 - фамилия, в каждую кнопку мы добавляем свой id. Когда человек его нажимает, мы этот id сохраняем, когда человек вводит какой-то текст и id кнопки в таблице 1, значит мы записываем этот текст в имя и обратно выдаем список кнопок
Может ответит кто Ошибка 302 Found Перенаправлений нет, только маршрут, который ловит POST и контроллер, что эти данные обрабатывает Бьюсь уже пару дней и не знаю, что уже сделать
@@devpovyshev я уже разобрался, спасибо) просто маршрут стоял в auth, а я и не заметил вообще. Два дня парился, оказалось все просто. Спасибо за видеоурок, все классно и понятно
Нет ли у вас примера где создается новый Auth вместо web и api, который по chat_id из webhook-а создает (если нет) или логинит user-а чтобы его можно было бы получать через стандартные $request->user()?
@@devpovyshev да, как в случае с api авторизация по токену, так и тут только по chat_id. Чтобы в коде использовать штатные средства как будто юзер залогинен .
@@k0repan0ff А, ну ответ тогда простой. Надо прикрыть те методы middleware auth (это уже должно быть в Laravel, в контроллере можно сделать $this->middleware('auth')) где необходимо авторизовать пользователя, а в AuthServiceProvider, необходимо взять из request chat_id, найти пользователя в базе по нему и сделать return этого пользователя. Я могу ошибаться, так как в Laravel не делал такую авторизацию. Но у меня есть видео Авторизация OAuth2, там почти так же как я описал, только вместо токена будет chat_id
Благодарю за видио. Я не совсем понимаю - есть боты которые работают без laravel. А есть фреймворк на php с ларавел. Грубо говоря если мне нужен бот который только в телеграме работает мне не нужен тогда ларавел?
Немного не понял. Что за фреймворк на php с laravel? Чтобы написать бота, фреймворк не нужен, у меня есть видео где на нативном php бота пишу. Зависит от задач, если что-то простое, можно без бота, но я рекомендую бота на lumen ставить
@@devpovyshev если ты не понял что такое фреймворк php и laravel То как ты умудряешься записывать такие видео) хорошо что зранаее не тратил время)) чудик а ты сейчас на чем написал бота?))) не На фреймворке Ларавель?)
@@HaveFun454 Ты что, эксперимент инцеста? Он вообще про другое спросил, и я на него вопрос в другом таком же видео ответил. И комментарию уже 2 с лишним года - это тебя не смутило?
@@devpovyshev Нужна реализация список каналов. Есть некое количество каналов. То что необходимо это достучаться до канала/ов и просто вывести название/аватарку/описание/количество участников.
Спасибо за классное видео. Единственное интуитивно так и не понимаю с этими вебхуками - проект же на локальном сервере? А на хостинге может быть вообще пусто? Иными словами нужен лишь https урл? Нелогично. Эдак можно же вообще любой указать. Вроде внимательно смотрел, но этот момент упускаю.
Вебхук - 1. Это url куда приходят данные от бота. Кто-то нажал кнопку в боте, бот отправляет данные этой кнопки на вебхук, кто-то что-то написал боту, бот отправил это сообщение на вебхук. Вебхук может быть только на сервере, на локалку телеграм не сможет пробиться.
@@devpovyshev спасибо. Эту часть я конечно понимаю) но у Вас же на локалхосте проект. А вебхук это хостинг/сервер. Вот эту часть как раз я и не улавливаю. Если взять конкретно этот проект. У вас на сервере под этим url что-то же размещено? Обработчики, что? Не улавливаю. Как локалхост узнает что на https url пришли данные с телеграма?
@@dmdk8301 я понял в чем дело. Когда я дошел до вебхука, я перенес проект на сервер, и далее весь код я из phpshtorm, я писал на проекте который на сервере. В phpshtorm есть такая функция
@@devpovyshev "многое объясняет")))) вот паззл и сложился. Спасибо. Сегодня доделаю по образу и подобию) Пользуясь случаем - а в vs code есть такой плагин?
Я в принципе комментарии не удаляю, скорее сам Ютуб их блокирует по не понятной причине. Можно скинуть тайм код отправки формы? Если совсем все плохо, то в описании есть ссылка в Гите, где можно скачать все файлы из видно и применить
@@devpovyshev заново ввел код, исправил предыдущие ошибки.При проверки вебхука через команду getWebhookInfo получаю ошибку в ответе Wrong response from the webhook 404 Not Found . Вебхук установлен
На отправке файлов выдает ошибку( A 'contents' key is required), сделал все как в видео но он ругается. А когда решил перейти к примеру с формами выдает ошибку could not find driver select * from `orders` where `public` = 1 И не отображает формы, хотя сделал все как в видосе, хотя было много срезок так что точно не понятно.
A 'contents' key is required Проверь в Http::attch(' ', 'Вот здесь') could not find driver в настройках php.ini найди где pdo и убери перед ним ; Если у тебя линукс, то php.ini лежит в /etc/php/php_актуальная версия/php.ini
@@АндрейКисель-м4ч я думаю ошибка в http::atach. Скорее всего storage::get возвращает null. Можешь посмотреть dd(storage:get(файл); скорее всего там будет null. И тогда просто не находит файл. Более детально помочь не могу, не возле ПК
Привет, при попытке запустить склонированный проект появляется ошибка : PHP Fatal error: Uncaught Illuminate\Contracts\Container\BindingResolutionException: Unresolvable dependency resolving [Parameter #1 [ $bot ]] in class App\Helpers\Telegram Исправил, добавив дефолтное значение для $bot в конструкторе Telegram, но не понимаю как это работает. Не могли бы пояснить?
Привет. Не знаю как объяснить проще. Представь что твой друг на твой адрес заказал телефон, а когда телефон пришел, твоего друга уже не было и происходит конфликт
По Laravel пока все. Это были уроки по основным моментам, с помощью которых можно создавать уже собственные проекты. Конечно будут трудности и моменты о которых я не говорил, но все решаемо с помощью Google))
В этой 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'));
@@devpovyshev у меня точно такая же история, токен дампуется в месте про которое вы говорите, но почем-то не передаётся в конструктор, если поместить токен в сам класс Telegam - всё работает
@@БубаОлоло Время идет а проблема непонятна. не могу в контроллер передать более чем одно значение [Parameter #1 [ $bot ]] и не важно даже если передаю текст или цыфру
на какой версии laravel делаешь? уже на 12 минуте вылетает ошибка:Target class [hash] does not exist. (View: C:\OpenServer\domains\jett esources\views eport.blade.php)
Версия у меня показана на первых секундах. У тебя ошибка скорее всего связана со сборкой ларавеля, у меня такое было уже не помню точно. Проще всего скачать мои исходники из описания, закинуть туда енв и сделать composer update
даже сообщение не отправилось, проблема на первой же минуте 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
Хорошо что показал архитектуру, многие не заморачиваются. Спасибо, заслуженный лайк.
Спасибо большое за видео. Все повторил, все работает.
Есть рекомендации:
1. Было бы здорово не пропускать создание моделей, контролеров и пр. Это займет не много времени, но спасает от 5 часов дебаггинга и поиска, что я сделал не так.
2. Круто было бы организовать именно чат с разветвленным меню. К примеру простенький магазин с возможностью оплаты и тп. Интересно именно как архитектурно это построить.
Спасибо, ждем еще видос! Жирный лайк твоей работе и подписка!
Огромное спасибо за комментарий, я обязательно все учту
Спасибо, очень круто!
Assalamu alaykum bro, Thanks for video, absolutly usefull for me.
👍👍👍
Круто! Хорошая тема, хотелось бы ещё увидеть подобные видео, про телеграмм ботов. А также ещё была бы интересна тема с парсерами в Laravel
Спасибо, учту
Оч круто! Правда в общем немного хаотично, но это наработается. Спасибо.
Ух ты, спасибо, так держать !
Крутой гайд, спасибо😀
Спасибо, очень мало таких видео по телеграму и Laravel, было бы круто если бы вы Дмитрий запилили полный гайд по созданию reusable компонента с моделями Canversation и вот этим вот всем.
Большое спасибо за видео, очень много полезного, жалко, что нет продолжения :(
Спасибо за видео. Для себя открыл лог:: дебаг. Я создавал фаил и внего писал . Так же не пользовался событиями, почитаю о них. Ну и фишка про кнопки где галочка ставится. Я как понимаю клавиатура привязывается к отдельному сообщению по мессаге ид?
Каким образом можно осуществить такой функционал, бот по команде присылает текст с 4 кнопками, на кнопках написано, указать имя, указать фамилию, указать возраст, сводка. после нажатия на кнопку, он ждет ответ в чате, при отправке нашего сообщения он сохраняет его, и так происходит с каждой кнопкой, при нажатии на кнопку сводка к нам в чат отправляется сообщение, в котором находятся все данные, которые мы указали, нужно сделать так, чтобы каждый раз, при отправке сводки все данные сбрасывались, заранее спасибо за ответ(если ответите)?
Принцип такой же как мы работаем с botfather. Нажимаем например создать бота, он отправляет нам сообщение введите имя бота и сохраняет его у себя. Можно сделать так же. Есть таблица где будут храниться данные (имя, фамилия... и условный id кнопки которую человек нажал. Например 1 - имя, 2 - фамилия, в каждую кнопку мы добавляем свой id. Когда человек его нажимает, мы этот id сохраняем, когда человек вводит какой-то текст и id кнопки в таблице 1, значит мы записываем этот текст в имя и обратно выдаем список кнопок
Я сделал телеграм-бота в Laravel и развернул его на хостинге. Но бот работает медленно. Почему?
Может ответит кто
Ошибка 302 Found
Перенаправлений нет, только маршрут, который ловит POST и контроллер, что эти данные обрабатывает
Бьюсь уже пару дней и не знаю, что уже сделать
У вас стоит middleware на этом маршруте?
@@devpovyshev я уже разобрался, спасибо) просто маршрут стоял в auth, а я и не заметил вообще. Два дня парился, оказалось все просто. Спасибо за видеоурок, все классно и понятно
Нет ли у вас примера где создается новый Auth вместо web и api, который по chat_id из webhook-а создает (если нет) или логинит user-а чтобы его можно было бы получать через стандартные $request->user()?
Имеешь ввиду регистрация/авторизация пользователя по вебхуку по chat_id?
@@devpovyshev да, как в случае с api авторизация по токену, так и тут только по chat_id. Чтобы в коде использовать штатные средства как будто юзер залогинен
.
@@k0repan0ff А, ну ответ тогда простой. Надо прикрыть те методы middleware auth (это уже должно быть в Laravel, в контроллере можно сделать $this->middleware('auth')) где необходимо авторизовать пользователя, а в AuthServiceProvider, необходимо взять из request chat_id, найти пользователя в базе по нему и сделать return этого пользователя. Я могу ошибаться, так как в Laravel не делал такую авторизацию. Но у меня есть видео Авторизация OAuth2, там почти так же как я описал, только вместо токена будет chat_id
Благодарю за видио. Я не совсем понимаю - есть боты которые работают без laravel. А есть фреймворк на php с ларавел. Грубо говоря если мне нужен бот который только в телеграме работает мне не нужен тогда ларавел?
Немного не понял. Что за фреймворк на php с laravel? Чтобы написать бота, фреймворк не нужен, у меня есть видео где на нативном php бота пишу. Зависит от задач, если что-то простое, можно без бота, но я рекомендую бота на lumen ставить
@@devpovyshev если ты не понял что такое фреймворк php и laravel То как ты умудряешься записывать такие видео) хорошо что зранаее не тратил время)) чудик а ты сейчас на чем написал бота?))) не На фреймворке Ларавель?)
@@HaveFun454 Ты что, эксперимент инцеста? Он вообще про другое спросил, и я на него вопрос в другом таком же видео ответил. И комментарию уже 2 с лишним года - это тебя не смутило?
А как можно получить данные бота/канала и вывести их?
В смысле получить данные и вывести?
@@devpovyshev Нужна реализация список каналов. Есть некое количество каналов. То что необходимо это достучаться до канала/ов и просто вывести название/аватарку/описание/количество участников.
Спасибо за классное видео. Единственное интуитивно так и не понимаю с этими вебхуками - проект же на локальном сервере? А на хостинге может быть вообще пусто? Иными словами нужен лишь https урл? Нелогично. Эдак можно же вообще любой указать. Вроде внимательно смотрел, но этот момент упускаю.
Вебхук - 1. Это url куда приходят данные от бота. Кто-то нажал кнопку в боте, бот отправляет данные этой кнопки на вебхук, кто-то что-то написал боту, бот отправил это сообщение на вебхук.
Вебхук может быть только на сервере, на локалку телеграм не сможет пробиться.
@@devpovyshev спасибо. Эту часть я конечно понимаю) но у Вас же на локалхосте проект. А вебхук это хостинг/сервер. Вот эту часть как раз я и не улавливаю. Если взять конкретно этот проект. У вас на сервере под этим url что-то же размещено? Обработчики, что? Не улавливаю.
Как локалхост узнает что на https url пришли данные с телеграма?
@@dmdk8301 я понял в чем дело. Когда я дошел до вебхука, я перенес проект на сервер, и далее весь код я из phpshtorm, я писал на проекте который на сервере. В phpshtorm есть такая функция
@@devpovyshev "многое объясняет")))) вот паззл и сложился. Спасибо. Сегодня доделаю по образу и подобию)
Пользуясь случаем - а в vs code есть такой плагин?
@@dmdk8301 vs code давно не пользовался. Не помню. У меня это в разделе deployment -> configuration. Часто пользуюсь, удобно
> Volodymyr Marakhovskyi:
При отправке формы -ошибка 400,отправка происходит по http,а не https.
Я в принципе комментарии не удаляю, скорее сам Ютуб их блокирует по не понятной причине.
Можно скинуть тайм код отправки формы? Если совсем все плохо, то в описании есть ссылка в Гите, где можно скачать все файлы из видно и применить
@@devpovyshev Простите.Это Ютуб удаляет,когда выкладываешь код PHP :)
@@devpovyshev заново ввел код, исправил предыдущие ошибки.При проверки вебхука через команду getWebhookInfo получаю ошибку в ответе
Wrong response from the webhook 404 Not Found . Вебхук установлен
@@ВладимирМараховский-ц9у Ну ошибка то говорящая. Страница не найдена. Вебхук доступен в инете? Или ставишь на своем локальном хосте?
На отправке файлов выдает ошибку( A 'contents' key is required), сделал все как в видео но он ругается.
А когда решил перейти к примеру с формами выдает ошибку
could not find driver
select * from `orders` where `public` = 1
И не отображает формы, хотя сделал все как в видосе, хотя было много срезок так что точно не понятно.
A 'contents' key is required
Проверь в Http::attch(' ', 'Вот здесь')
could not find driver
в настройках php.ini найди где pdo и убери перед ним ;
Если у тебя линукс, то php.ini лежит в /etc/php/php_актуальная версия/php.ini
Такая же ерунда(ошибка( A 'contents' key is required)). заменил Storage::get на fopen('lalala', ''rb') и заработало, но не
понял в чем косяк был.
@@АндрейКисель-м4ч Думаю можно разобраться. А что в Storage::get было?
@@devpovyshev Круто, спасибо за быструю реакцию! Было Storage::get('/public/'.$file), в $file cоотвественно '1.png'
@@АндрейКисель-м4ч я думаю ошибка в http::atach. Скорее всего storage::get возвращает null. Можешь посмотреть dd(storage:get(файл); скорее всего там будет null. И тогда просто не находит файл. Более детально помочь не могу, не возле ПК
Привет, при попытке запустить склонированный проект появляется ошибка :
PHP Fatal error: Uncaught Illuminate\Contracts\Container\BindingResolutionException: Unresolvable dependency resolving [Parameter #1 [ $bot ]] in class App\Helpers\Telegram
Исправил, добавив дефолтное значение для $bot в конструкторе Telegram, но не понимаю как это работает. Не могли бы пояснить?
Привет. Не знаю как объяснить проще. Представь что твой друг на твой адрес заказал телефон, а когда телефон пришел, твоего друга уже не было и происходит конфликт
откуда он взял ссылка api telegram
всё понял
ВЫ закончили уроки про Ларавел или еще будут?
По Laravel пока все. Это были уроки по основным моментам, с помощью которых можно создавать уже собственные проекты. Конечно будут трудности и моменты о которых я не говорил, но все решаемо с помощью Google))
Если есть идеи или сложности по Laravel, то всегда можно предложить)
@@devpovyshev ага, например, как сделать документирование апи) сам апи реализовал, а вот документацию к нему теперь сделать малой кровью...
PHP Fatal error: Uncaught Illuminate\Contracts\Container\BindingResolutionException: Unresolvable dependency resolving [Parameter #1 [ $bot ]] in class App\Helpers\Telegram
как исправили?
В этой
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'));
@@devpovyshev Благодарю!
@@devpovyshev у меня точно такая же история, токен дампуется в месте про которое вы говорите, но почем-то не передаётся в конструктор, если поместить токен в сам класс Telegam - всё работает
@@БубаОлоло Время идет а проблема непонятна. не могу в контроллер передать более чем одно значение [Parameter #1 [ $bot ]] и не важно даже если передаю текст или цыфру
такое полезное видео снял на таком дерьмовом качестве, баланс установлен
на какой версии laravel делаешь? уже на 12 минуте вылетает ошибка:Target class [hash] does not exist. (View: C:\OpenServer\domains\jett
esources\views
eport.blade.php)
Версия у меня показана на первых секундах. У тебя ошибка скорее всего связана со сборкой ларавеля, у меня такое было уже не помню точно. Проще всего скачать мои исходники из описания, закинуть туда енв и сделать composer update
только что повторил, все работает. Laravel v9.6
даже сообщение не отправилось, проблема на первой же минуте
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
У тебя $url как массив получается, а должно быть строкой
Скорее всего где http::post() у тебя массив а не строка с сылкой
@@devpovyshev я не знаю как объяснить, но оно просто заработало, сейчас на 14 минуте, завтра продолжу.
Ваще не думал что мне ответят, спасибо)