В Telegram появились анимированные аватарки и видеозвонки

Собираем бота в конструкторе — стартовый экран

Мы исполь­зу­ем кон­струк­тор BotMother — мы уже рас­ска­зы­ва­ли, как с ним рабо­тать и собрать сво­е­го тесто­во­го бота. Если что-то по ходу опи­са­ния будет непо­нят­но, почи­тай­те сна­ча­ла ту статью.

Стар­то­вый экран — это то, что выпол­ня­ет бот по коман­де /start. Сде­ла­ем на стар­то­вом экране выбор из двух кно­пок: отпра­вить новость и отпра­вить статью:

image1-1.png Здесь три ком­по­нен­та: тек­сто­вый блок и две кнопки 

Теперь нам нуж­но сде­лать так, что­бы при нажа­тии на каж­дую из этих кно­пок бот делал то, что нам нуж­но. Для это­го созда­ём два экра­на: «Пред­ло­жить новость» и «Пред­ло­жить ста­тью» и настра­и­ва­ем дей­ствия по кнопкам:

image2-1.png Всё, стар­то­вый экран готов, идём к новостям 

@grammarnazibot

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

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

  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 Един­ствен­ное, что поме­ня­лось на этом экране — при­вет­ствен­ный текст и имя переменной 

Изменение и удаление аватарки

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

Чтобы удалить изображение, нужно:

  • запустить приложение и зайти в настройки;
  • выбрать раздел настроек профиля;
  • открыть фотографию;
  • кликнуть на три вертикальные точки в верхнем правом углу интерфейса и нажать «Удалить».

На заметку. Если загружать новую аву, не удаляя предыдущую, то последняя останется в профиле.

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