Введение
Впервые с ботами для телеграма я познакомился в одной из конкурсных статей от ZennoLab. С тех пор прошло 1-2 года и я нашёл время, чтобы описать процесс создания простого бота для Telegram.
Что в итоге мы получим:
- Зарегистрируем самого бота
- Получим: token
- Получим: chat_id
- Получим: Get запрос с помощью которого бот сможет писать сообщения
- Научимся ставить и изменять аватар боту
- Научимся редактировать описание бота
Регистрируем бота
Для регистрации нового бота, необходимо написать специальному юзернейму @BotFather - это такой специальный бот, который позволяет осуществить задуманное нами действие.

Первым делом напишем ему команду
В ответ мы получим список доступных команд

Создаём нового бота при помощи команды
У нас спросят как мы хотим назвать бота, придумываем уникальное имя
Затем придумываем уникальный Username боту. Обратите внимание что он обязательно должен в своём названии содержать слово bot
Внимательно вписываем данные

После чего нам будет выдана прямая ссылка на нашего бота.
А так же token для использования API телеграма. Токен как и во многих других сервисах мы храним в надёжном месте и никому его не светим!
На этом шаге регистрация самого бота завершена.
Chatid
chatid является по сути адресатом сообщения. Это может быть как пользователь так и например группа.
Существует несколько способов узнать chatid, например:
Вариант N1:
Написать боту @get_id_bot, в ответ получим свой chatid.
Вариант N2:
Мало ли что с этими ботами случится, поэтому мы сформируем специальный URL подставив в него token нашего бота. И откроем его в браузере.
В первый раз мы увидим довольно мало информации. Напишем нашему боту личное сообщение и снова откроем тот же самый URL
А вот теперь инфы будет уже побольше. В том числе chatid

Вариант N3:
Попросим нашего бота писать всё в специально созданный канал.
Создадим канал

Назовём его

Выбираем тип канала. Я выберу приватный, можете сделать публичный если хотите.

На следующем шаге у нас спросят - хотим ли мы добавить кого нибудь в созданный канал. Вписываем Username нашего бота с символом собаки.
Выбираем его и нажимаем Add

В ответ нам скажут что можно добавить бота только в качестве администратора канала

Поэтому мы нажимаем MAKE ADMIN и устанавливаем права нашему боту

Теперь, так как мы хотим узнать chatid группы мы повторяем вариант номер 2. Открываем в браузере ссылку (подставляя свои данные)
При первом заходе по данному адресу получаем сообщение, что все ок, но без нужной нам информации.
Напишем в наш канал любое сообщение и повторно заходим по ссылке выше

Теперь, когда у нас есть и token и chatid мы можем написать сообщение в канал группы обычным Get запросом
Подставляем свои параметры, копируем получившийся URL в браузер ну или например в зенку.
Получаем результат.

Если напишет что бот не является участником канала - просто подождите несколько минут. Либо попробуйте пере-пригласить бота на канал.
Как писать в конкретный топик в группе
С недавних пор в телеграмме появилась возможность создавать отдельные топики для групп. Для того чтобы написать в конкретный топик проделываем всё тоже самое что и раньше:
Шаг 1: создаём теперь уже группу, создаём в ней топик
Шаг 2: Приглашаем в группу нашего бота
Шаг 3: Получаем ChatID для группы
Шаг 4: Пишем сообщение в необходимый топик. После чего в клиенте нажимаем на наше сообщение и выбираем пункт копировать ссылку.
Ссылка будет иметь такой вид https://t.me/c/xxxxxxxx/19/20
Первый id после слеша это id топика (отмечен синим цветом), а второй это id сообщения. Берём id топика и теперь уже формируем такую ссылку для отправки сообщений
В результате получим успешную отправку в топик группы

Оформление текста
Иногда есть необходимость выделять текст. Для этого добавляем в ссылку дополнительный параметр &parse_mode=MarkdownV2
Должно получиться вот так
Теперь мы можем обернуть нужный текст в специальный формат:
*bold text* жирный текст
_italic text_ курсив
`monospace` моноширинный текст, будет скопирован при клике
~strike~ зачёркнутый текст
__underline__ подчёркнутый текст
||spoiler|| спойлер
[URL TEXT](http://www.example.com/) ссылка
[USER TEXT](tg://user?id=123456789) упомянуть пользователя с ID 123456789
%0A новая строка
Код
code
```
Пример
В результате преобразуется в

Знаки препинания после разметки необходимо экранировать например так \. иначе сообщения не отсылаются!
Меняем картинку нашему боту
Для этого снова обратимся к @BotFather
Вписываем команду
У нас поинтересуются какому боту мы хотим установить аватар, выбираем нужного нам. И присылаем желаемую картинку в сообщении

После чего всплывёт окно в котором мы можем выбрать нужную область изображения

Меняем описание нашему боту
Опять пишем к @BotFather
Вписываем команду
Выбираем бота, для которого хотим изменить описание. И вписываем его.

Список команд для работы с ботом
Редактирование бота
/mybots - редактирование ботов
/setname - установить имя
/setdescription - установить описание
/setabouttext - установить описание о себе
/setuserpic - установить/изменить аватар
/setcommands - изменить список команд бота
/deletebot - удалить бота
Свойства бота
/token - сгенерировать токен авторизации
/revoke - отозвать токен
/setinline - inline mode
/setinlinegeo - toggle inline location requests
/setinlinefeedback - inline feedback
/setjoingroups - can your bot be added to groups?
/setprivacy - toggle privacy mode
Games
/mygames - edit your games
/newgame - create a new game
/listgames - get a list of your games
/editgame - edit a game
/deletegame - delete an existing game
Заключение
Мы научились создавать бота, менять ему юзерпик и описание. Научились писать данным ботом в личку и на стене канала. Остаётся только применить эти знания и направить их в нужное русло. Пользуйтесь на здоровье.