26 Telegram-ботов для работы интернет-маркетолога

Собираем экраны «Предложить новость» и «Предложить статью»

Логи­ка экра­на будет такой:

  1. Пишем текст с пояс­не­ни­ем, что нуж­но сде­лать — напи­сать текст ново­сти или дать ссыл­ку на неё.
  2. Сохра­ня­ем ответ в отдель­ной пере­мен­ной news1.
  3. Отправ­ля­ем в наш новост­ной чат сооб­ще­ние от бота с име­нем посе­ти­те­ля, кото­рый напи­сал новость, и текст самой новости.
  4. Что­бы сооб­ще­ния не сли­па­лись, вдо­гон­ку отправ­ля­ем в тот же чат отбив­ку — линию-разделитель из несколь­ких дефисов.
  5. Если мы дошли до послед­не­го пунк­та и всё про­шло без оши­бок — пока­зы­ва­ем посе­ти­те­лю экран «Всё хоро­шо», а если на каком-то эта­пе была ошиб­ка — сра­зу пере­бра­сы­ва­ем его на экран «Что-то не так».

Сна­ча­ла посмот­рим на гото­вый экран, а потом раз­бе­рём его по шагам:

image6.png Пер­вые два экра­на соот­вет­ству­ют тому, что мы писа­ли в алго­рит­ме, а два осталь­ных — это и есть наша отправ­ка сооб­ще­ний в чат 

Каж­дую отправ­ку мы сде­ла­ли через запрос POST к API теле­гра­ма. Когда сер­вер теле­гра­ма полу­ча­ет спе­ци­аль­ным обра­зом под­го­тов­лен­ный запрос, он выпол­ня­ет какое-то дей­ствие — это назы­ва­ет­ся рабо­та по API и про это у нас есть отдель­ная ста­тья.

В нашем слу­чае все запро­сы исполь­зу­ют метод sendMessage, у кото­ро­го все­гда есть два параметра:

  1. ID полу­ча­те­ля.
  2. Текст сооб­ще­ния.

В общем виде коман­да выгля­дит так:

https://api.telegram.org/bot<ТОКЕН_БОТА>/sendMessage?chat_id=&text=<Сообщение>

Мы уже зна­ем токен бота и ID чата, куда хотим отпра­вить сооб­ще­ние — это ID наше­го чата, кото­рый мы выяс­ни­ли до это­го. Под­став­ля­ем эти зна­че­ния и полу­ча­ем команду:

https://api.telegram.org/bot1738394823:AAF4h6dkgjKH88lKanJ899lpH-Jqkd5k2399sjKo/sendMessage?chat_id=-1034423424553&text=<Сообщение>

Пер­вым сооб­ще­ни­ем мы отправ­ля­ем имя того, кто пред­ло­жил новость, и сам текст ново­сти, поэто­му сооб­ще­ние будет выгля­деть так:

Новость, отправил @{{this_user.username}} → {{news1}}

Здесь {{this_user.username}} и {{news1}} — это пере­мен­ные. Пер­вая пере­мен­ная стан­дарт­ная в кон­струк­то­ре BotMother, а вто­рую сде­ла­ли мы сами на этом же экране. Пол­ный текст запро­са выгля­дит так:

https://api.telegram.org/bot1738394823:AAF4h6dkgjKH88lKanJ899lpH-Jqkd5k2399sjKo/sendMessage?chat_id=-1034423424553&text=Новость, отправил @{{this_user.username}} → {{news1}}

Сде­ла­ем по ана­ло­гии вто­рую коман­ду, кото­рая при­сы­ла­ет отбив­ку в чат, что­бы отде­лить одну новость от другой:

https://api.telegram.org/bot1738394823:AAF4h6dkgjKH88lKanJ899lpH-Jqkd5k2399sjKo/sendMessage?chat_id=-1034423424553&text=————

👉 Вме­сто двух запро­сов на отправ­ку сооб­ще­ния мож­но было исполь­зо­вать функ­цию API теле­гра­ма forvardMessage, кото­рая про­сто пере­сы­ла­ет сооб­ще­ния. Для это­го нам пона­до­бил­ся бы поряд­ко­вый номер сооб­ще­ния в пере­пис­ке. Если бы мы писа­ли бота на питоне, с этим бы не было ника­ких про­блем, но в этом кон­струк­то­ре про­ще сде­лать отправ­кой, как у нас.

Точ­но так же соби­ра­ем экран «Пред­ло­жить статью»:

image5-1.png Един­ствен­ное, что поме­ня­лось на этом экране — при­вет­ствен­ный текст и имя переменной 

Финальная схема

У нас полу­чил­ся очень про­стой бот, кото­рый реша­ет глав­ную зада­чу редак­ции на этом эта­пе: бот пере­сы­ла­ет все сооб­ще­ния поль­зо­ва­те­лей в один чат, что­бы все внеш­ние мате­ри­а­лы соби­ра­лись в одном месте.

image7.png

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий