Перейти к содержанию

Канал проекта в Telegram

Пакет серии уже отделяет статью, оглавление и анонс. Теперь спроектируем учебный канал Telegram: назначение, рубрики и путь от сообщения к сайту. Результатом будет редакционный паспорт CH-01 и набор локальных заготовок. Создание настоящего канала, приглашение людей и отправка сообщений в этот урок не входят.

Для ProfessorWeb канал в модели помогает замечать новые объяснения и возвращаться к последовательным урокам. У него нет реального имени пользователя, токена бота или статистики. Все поля внешних идентификаторов оставлены пустыми. Файлы lesson-08 учебного архива предназначены для чтения и редактирования, а не вызова API.

Канал и обсуждение

Канал служит распространению публикаций; обсуждение требует отдельного пространства и правил. Telegram описывает возможность связывать канал с группой обсуждения, в которой появляются комментарии к сообщениям. Это свойство площадки, а не уже выполненная настройка нашего проекта. В лаборатории связь отсутствует. Порядок подключения нужно сверять перед реальным использованием по справке каналов Telegram.

Выберем три рубрики: «Новый урок», «Одна ошибка» и «Вопрос недели». Первая ведёт к последовательности, вторая даёт самостоятельный маленький разбор, третья собирает конкретные затруднения. Не будем обещать ежедневную публикацию: календарь шестого урока показывает ограниченную ёмкость. Для модели достаточно одного основного сообщения в неделю и дополнительного только при готовом полезном материале. Это редакционное решение, не правило Telegram.

Паспорт канала отвечает на четыре вопроса: кому он помогает, что публикует, чего не обещает и куда ведёт. Для CH-01 аудитория — читатели практических уроков веб-разработки. Содержание — короткая полезная мысль и понятный путь к подробному объяснению. Канал не оказывает личную техническую поддержку каждому подписчику и не обещает результат поискового продвижения. Точка входа — согласованное оглавление серии.

Рубрика Самостоятельная польза Следующий шаг
Новый урок Новое действие серии Статья и оглавление
Одна ошибка Причина наблюдаемого результата Подробный разбор
Вопрос недели Ясно сформулированная задача Ответ по правилам обсуждения

Макет сообщения

Возьмём PUB-01. Начало сообщения: «При переносе страницы имя нового файла не обязано совпадать со старым URL». Затем покажем один пример прежнего .php-пути и объясним, что он хранится как постоянный адрес материала. Завершение предлагает открыть урок, если читателю нужен полный разбор. Это сообщение не зависит от заявления «срочно прочитайте», потому что его причина для перехода уже содержится в объяснении.

Закреплённый текст отличается от анонса. Он объясняет назначение канала и выбор маршрута: новичку предлагается начало серии, продолжающему — оглавление, владельцу старого сайта — материалы о сохранении адресов. В учебном образце реальные адреса неназначенных карточек остаются пустыми. Перед внешним размещением пакет требует сверки ссылок. Название рубрики не должно маскировать отсутствие готовой страницы.

Разделим редакционный текст и техническую отправку. Согласно Bot API, метод sendMessage принимает целевой чат и текст; длина текста ограничена 4096 символами после обработки разметки. Это подтверждённая деталь интерфейса на дату подготовки, 11 октября 2026 года. Она не означает, что сообщение такого размера удобно читать. Мы выбираем значительно более короткий формат ради одного понятного действия.

В приложении есть только описание полей будущей операции: chat_id неизвестен, text содержит заготовку, send_enabled ложен. Нет токена, HTTP-клиента или команды отправки. Такая граница важна: локальная редактура сообщения не должна случайно превращаться в публикацию, особенно при подготовке большого числа уроков. Для реального подключения потребуется отдельный процесс доступа и проверки прав.

Повтор и исправление

У каждого сообщения зададим редакционный ID, например MSG-PUB-01-v1. Он связывает заготовку с материалом и версией. Это не message_id Telegram, который возникает после настоящей отправки. Не подставляйте учебный номер в поле внешнего результата. В нашей модели platform_message_id остаётся null, а статус — draft_local. Так по файлу видно, что публикация отсутствует.

Если ссылка статьи изменилась в процессе подготовки, редактор исправляет заготовку и увеличивает её версию. При настоящем опубликованном сообщении потребовалось бы решить, редактировать ли его или разместить уточнение. Это отдельное действие с внешним состоянием. Сейчас мы показываем только ожидаемое редакционное решение: обновлённый текст должен вести к тому же учебному результату и не обещать отсутствующее продолжение.

Не используйте просмотры канала как подтверждение усвоения урока. Даже если в будущем площадка покажет число просмотров, оно не означает, что каждый человек прочёл статью или получил нужный результат. В паспорте заранее выделим разные наблюдения: увидел сообщение, перешёл, нашёл нужный урок, сообщил о затруднении. Учебная таблица пока не содержит чисел: реальные события отсутствуют.

Для рецензии полезен просмотр сообщения без ссылки. Понятно ли, какой механизм объясняется? Затем рассмотрите ссылку отдельно: ясно ли, зачем её открывать и что находится на странице? Если самостоятельная мысль потеряна, а призыв занимает половину текста, заготовку стоит переработать. Если сообщение обещает всю миграцию сайта, а статья объясняет только URL, исправьте обещание, не добавляя случайные главы.

Права участника также входят в будущий паспорт подключения. Автор может готовить текст без права отправки, редактор — принимать локальную версию, а оператор внешней публикации — выполнять согласованное действие. В учебной модели последняя роль не назначена. Поэтому статус ready_local не включает возможность отправить сообщение. При реальном расширении команды такой разбор помогает не хранить доступ к каналу в редакторских документах и не давать лишние права человеку, которому нужен только текст. Секреты и идентификаторы подключения не являются частью статьи или скачиваемого приложения. Если заготовка содержит их по ошибке, это отдельная проблема хранения, а не причина маскировать номер сообщением о готовности. В нашем образце вместо секретов стоят явные пустые поля, и любой участник может прочитать материал без доступа к Telegram. Такой паспорт остаётся полезным даже до выбора способа публикации: ручного интерфейса или будущей отдельной интеграции.

В after.json появляется паспорт CH-01, три рубрики и запрещённая техническая отправка. Предыдущая серия сохраняется. Ожидаемый результат — готовая структура локального канала, согласованная с календарём и материалами. Сам канал не создан, подписчики не приглашены, API не вызывался. Дальнейшая работа будет посвящена качеству одного социального сообщения, независимо от интерфейса конкретной площадки.