December 21, 2018

Как транслировать свой ЖЖ в телеграмм.

К сожалению, ЖЖ не умеет автоматически транслировать посты в телеграмм каналы, а с некоторого времени и в FaceBook перестал это делать.
Начнем делать все вручную сами.
Автоматически в телеграмм каналы могут постить боты, которого нам и нужно создать.
Можно постить вручную, но именно бот сможет сделать это без вашего участия.
Для начала ищем в телеграмм пользователя @BotFather именно он позволит создать нашего бота.
Командой /newbot создаем бота. Особых требований к имени нет, но главное в конце имени слово bot.
Создаем имя его и имя пользователя бота.
Я назвал его, ну и фантазия у меня, @forexample123_bot
Итак, мы имеем имя бота и, что самое важное, его токен. Токен это сугубо конфиденциальная информация, потому что именно по токену вы будете управлять работой бота. Я публикую токен открыто, потому что бота "прибью" после публикации поста.

Затем создаем канал куда мы, собственно говоря, и будем постить наши посты из ЖЖ.
Канал должен быть публичным, имя канала должно быть уникальным, у нас канал называется forexample1234 и доступен он по ссылке https://t.me/forexample1234

Итак, теперь ссылку на канал можно рассылать друзьям, знакомым, самому писать сюда что-то, смотреть, потирая руки, на увеличивающийся список читателей.
Но для автоматического постинга, которым будет заниматься созданный нами бот, нужно дать ему права администратора.
Так что заходим в настройки управления каналом и добавляем нашего бота @forexample123_bot в качестве администратора канала.

Можно настроить его права, но я оставил все по-умолчанию.

Итак, есть канал, есть бот, который умеет в него писать, осталось найти какой-то механизм, который при появлении новых постов в ЖЖ будет автоматически заставлять бота написать этот пост в телеграмм канале. Если у вас нет своего хостинга где можно все это написать (у меня нету) на выручку придет отличный сервис https://ifttt.com/
Заводим аккаунт, авторизуемся и выбираем NewApplet.
Этот сервис позволяет настроить триггер, который будет проверять какое-то условие, и по результату выполнять какое-то действие - что нам и надо.
Нам нужен сервис RSS Feed
Дело в том, что я не знаю как еще отследить автоматическое появление нового поста в ЖЖ, готовых инструментов для этого нет, но обновление RSS в ЖЖ еще работает.

В единственное поле сервиса RSS Feed вводим RSS адрес нашего блога, для моего ЖЖ это https://teletype.in/@max-a-lebedev, для вашего выберете соответствующий.

Итак, триггер готов, он будет отлеживать изменении RSS ленты нашего блога и сигнализировать об этом следующему инструменту, выбираем его, нажав +that

Щелкаем дальше и ищем инструмент Webhooks, который позволит выполнить web запрос к серверу телеграмм после того, как изменится что-то в триггере контролирующем наличие новых постов в ЖЖ. Можно ввести первые буквы в строке поиска для ускорения.

Много страшных полей заполняются просто
URL: https://api.telegram.org/bot643304301:AAHruolAVuASu_GeDxw7sRnnMweDMeqdGWw/sendMessage
Где 643304301:AAHruolAVuASu_GeDxw7sRnnMweDMeqdGWw - токен нашего бота.
Method: POST
Content Type (optional): application/json
Body (optional):{"chat_id":"@forexample1234","text":" {{EntryUrl}}"}
Где @forexample1234 имя нашего канала.

Все это нужно для того, чтобы сервис увидел по RSS обновление в вашем ЖЖ, взял ссылку на новый пост, а созданный вами бот отправил эту ссылку в ваш канал.

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

И через некоторое время вижу анонс поста в телеграмм. Апплет на сайте IFTTT работает не быстро, бывает через минуту, бывает через полчасика сработает. Для теста можете его выбрать и нажать "check now".

На мобильных устройствах все тоже хорошо, и даже лучше, потому что ЖЖ совместим с предпросмотровщиком телеграмм "instant view". Когда можно не переходить по ссылке, а нажать кнопку и посмотреть весь пост прямо в мессенджере.

Cчитаю что все окей.

Мой ЖЖ транслируется в телеграмм канал https://t.me/maxlebedevchannel, на него можно подписаться.