Python Telegram Bot
Открыть в Telegram
☑️ Заявки принимаются автоматически! Обучаем созданию и продвижению чат-ботов в телеграм. ссылка: @pybotg связь: @oksi_young https://telega.in/channels/+Mj_twnrYuAxkZmUy/card/?r=BrHKEWMo
Больше5 003
Подписчики
Нет данных24 часа
-67 дней
+1730 день
Архив постов
5 003
🔥 Накидайте много реакций и через 10 минут скину вам приватные архивы с курсами
5 003
Продолжение к посту выше
Итак, для начала посмотрим , где у нас хранятся встроенные фильтры. Зайдем в
handlers->user->start и посмотрим на то, как реализован хендлер для реакции на команду start. В хендлере сразу увидите два фильтра: один встроенный ComandStart, а другой созданный нами IsPrivate.
Встроенный фильтр ComandStart лежит в aiogram.dispatcher.filters.builtin, т.е в библиотеке aiogram в стандартных фильтрах. Он настроен так ,что добавив его, в хендлер будут попадать команды start (т.е та команда /start, которая появляется, когда вы пишите боту).
Но учитывая, что есть система deep link, в телеграмме под командой start могут прятаться еще другие аргументы, если пользователь перейдет по какой-то ссылке. Например, вы отправили пользователю ссылку "t.me/bot&start=deep_link" тогда боту поступит сообщение "/start deep link".5 003
Распаковка списка аргументов
Обратная ситуация возникает когда параметры уже содержатся в списке или в кортеже, но должны быть распакованы для вызова функции, требующей отдельных позиционных параметров. Например, встроенная функция
range() ожидает отдельные старт и стоп аргументы. Если они не доступны раздельно, для распаковки аргументов из списка или кортежа в вызове функции используйте *-синтаксис (Код 1)
Схожим способом, словари могут получать ключевые аргументы через оператор ** (Код 2)
#python_обучение5 003
Сообщества энтузиаста из Habr триумфовали в список «полезные Телеграм-ресурсы". Делимся:
Python | Тесты для программистов – настоящая находка с увлекательными тестами и детальным объяснением к каждому ответу. Присутствует классификация по сложности и рангам, следовательно подойдет как для полных чайников, так и для твердых мидлов.
Разъяснивший Python – в нём вы узнаете как основы питона (функции, библиотеки), так и его глубинные тайны (почему 1800 меньше 19). А ещё здесь целая куча гайдов, фич, шпаргалок, программ и всякой полезности.
5 003
☑️ Разработать телеграм бота
• Бюджет: 25.000₽
• Срок: 30.09.22
• Задача:
Создать бота со своей базой ответов с помощью которой он будет отвечать пользователям на их вопросы по типу : привет как дела, как погода и т.д.
Откликнуться
5 003
В этом посте мы будем использовать ту же ветку, которая называется handlers_filtres. Мы подошли к одной из очень интересных тем. В прошлом посте мы говорили о том, что в хендлерах можно прописывать условия. Эти условия называются фильтрами.
Несмотря на то, что в aiоgram есть множество встроенных фильтров, очень удобно, когда вы можете создавать такие сами. Можно, конечно, делать как и в других библиотеках, просто прописывать через лямду, но это выглядит достаточно непонятно на первый взгляд и захламляет код
5 003
Произвольные списки аргументов
Наименее часто используемой опцией заключается в указании того, что функция может быть вызывается с произвольным числом аргументов. Эти аргументы будут упакованы в кортеже (Код 1). Перед переменным числом аргументов может появиться ноль или более стандартных аргументов.
Как правило,
вариативные аргументы являются последними в списке формальных параметров, потому что они собирают все оставшиеся входные аргументы, передаваемые в функцию. Любые формальные параметры, возникающие после *args являются только ключевыми аргументами, то есть их можно использовать только как ключевые аргументы, а не позиционные аргументы (Код 2).
#python_обучение5 003
В России настали тяжёлые военные времена, все уезжают за границу, поэтому для освоения английского вам поможет English for IT.
English for IT - канал для изучения английского с уклоном на IT, весь материал изложен в максимально легкой и понятной форме.
Подписывайся и начинай новую жизнь.
5 003
Специальные параметры
По умолчанию аргументы могут передаваться
Python функции либо по позиции или явно по ключевому аргументу. Для удобочитаемости и производительности имеет смысл ограничить способ передачи аргументов, чтобы разработчик сразу мог понять по определению функции передаются ли элементы по позициям, по позиции или ключевому аргументу, или по ключевому аргументу.
Определение функции может выглядеть как на (Фото)
Где / и * являются необязательными. При использовании этих символов определяют способ передачи аргументов в функцию: позиционно, позиционно-ключевым, и только ключевым.
#python_обучение5 003
Финал поста выше
Учтите, что порядок хэндлеров в коде имеет значение. Поэтому, если одно и тоже сообщение может попасть в два хэндлера, оно попадет в тот хэндлер, который был выше по коду. Поэтому, когда у нас есть хэндлеры help, start. Они все импортируются в inite.
Обратите внимание на то, что echo регистрируется в самом конце, потому что мы хотим, чтобы бот реагировал на help, start, админ-команды, а потом только отвечал пользователю. Потому что, если echo файл поставить выше, то все сообщения будут попадать только сюда и он их больше никуда не будет пропускать, т.е у нас есть вот такой message_handler. В message_handler по умолчанию летят только текстовые сообщения, где content_types это types.contentTypes и равняете текст. Т.е сюда попадают только текстовые сообщения.
Поэтому если вы хотите чтобы в ваш хэндлер попадало что-то другое, вам обязательно нужно указать content.types. Если вы хотите принимать фотографии,то укажите, что это photo, если вы хотите принимать видео, укажите, что это video.
5 003
Как потерять всех пользователей вашего телеграм-бота. Краткая инструкция
Эта поучительная история произошла в прекрасный день 8 декабря 2019 года. В этот день я вспомнил, что телефон, на который заведен наш бот, оформлен на участливую продавщицу из Евросети и, в случае чего, в одночасье исчезнет за невозможностью его восстановить и утащит с собой в небытие наш бот...
Читать
5 003
🏆 Как и обещали, делаем конкурс на 10 доступов в приватный канал!
Участвуют все, условия для участие очень просты:
• Быть подписанным на наш канал
• Пригласить 5 друзей ⇩
Чтобы мы могли отследить ваши приглашения, нужно написать @finessedirector "участвую", он выдаст вам индивидуальную ссылку и внесет вас в списки
Стоп конкурса через через 48 часов, удачи!
5 003
Проанализировать чат-боты конкурентов
Изучите механику чат-бота, какие может выполнять действия, какие задачи решает, рассылают ли через него сообщения. Возможно, на первом этапе вам понадобится внедрить подобный функционал.
На что обратить внимание при анализе чат-бота конкурентов :
• Какие функции выполняет - отвечает на вопросы, вызывает менеджера, предлагает товары и услуги, помогает с выбором, присылает задания марафона
• Есть ли воронка - куда ведет бот для продажи, как предлагает оформить заказ, как помогает с выбором, разгружает ли менеджеров
• Варианты действий - только ответы на сообщения или оформление заявок, заказов
• Рассылки - о чем пишут, что предлагают, какие офферы используют
5 003
5 003
Ключевые аргументы 2
При вызове функции ключевые аргументы должны следовать за позиционными аргументами. Все переданные ключевые аргументы должны соответствовать одному из аргументов принимаемых функцией (например
actor не является допустимым аргументом для функции parrot) и их порядок не важен.
Это также справедливо и для необязательных аргументов (например, parrot(voltage=1000) также допустим).
Ни один аргумент не может получить значение более одного раза. Далее пример, который не удается выполнить из-за этого ограничения (Фото)
#python_обучение5 003
Право на отсрочку могут получить специалисты, которые имеют соответствующее высшее образование и работающие полный рабочий день.
Это сотрудники:
• аккредитованных ИТ-компаний, задействованные в разработке, развитии, внедрении, сопровождении и эксплуатации ИТ-решений (программного обеспечения, программно-аппаратных комплексов) или задействованные в обеспечении функционирования информационной инфраструктуры
• операторов связи, задействованные в обеспечении устойчивости, безопасности и целостности функционирования отдельных сооружений связи, средств связи и линий связи сети связи общего пользования, а также центров обработки данных
• зарегистрированных СМИ, радиовещателей, телевещателей, включённых в перечень системообразующих, задействованные в производстве и распространении информационной продукции
5 003
Для тех кто просил, открываем доступ в секретный канал на 2 ЧАСА👇
https://t.me/+ijjAVkLQHZ5hYjFi
5 003
Скинуть секретный архив с платными материалами и книгами для программистов?
5 003
Продолжение к посту выше
Чтобы сделать запрос
send Message, мы должны использовать наш объект bot, поэтому можно импортировать его из нашего диспачера, либо взять из контекстной переменной, либо импортировать из модуля loader, где мы его тоже создавали. Не важно, что использовать, потому что результат будет всегда один.
Для того, чтобы отправить сообщение есть тоже 3 варианта. Либо мы делаем его с помощью обычного метода send Message вот таким вот образом: await bot.send_message(chat_id=chat_id, text=text), куда мы явно передаем chat_id и явно передаем текст. Это наш первый вариант. Либо мы можем использовать очень удобный метод answer или replay, который встроен в Aiogram, где мы можем использовать объект сообщение и применить к нему один из методов. Чем этот метод удобен? Тем, что вам не надо передавать chat_id, потому что эти методы сами достают его из message. Это является своеборазной автоматизацией с помощью встроенных методов.5 003
Аналитика
Все диджитал услуги - это чисто про цифры. Чат-бот - сбор цифр и фактов. Собирайте максимальное количество аналитики, которое вы можете собрать.
Вы должны понимать, где и почему уходят пользователи, несомненно важно смотреть, сколько конечных действия сделал пользователь. Например, сколько денег он принесли или какое количество заявок вам пришло с бота. Но намного важнее понимать, на каком этапе пользователь ушел, почему он не сделал это ключевое действие и почему он к нему не приходит. Вы должны понимать, на каком конкретном сообщении что-то идет не так, чтобы потом это исправить
