Давно хотел и просили добавить канал в Телеграме, и сделать кросспост постов из блога туда.
Всё не доходили руки сесть, и закончить – но теперь всё работает.
Сам канал в телеге – тут>>> (плюс открытая группа тут>>>), а в этом посте – описание настройки.
Используется телеграм-бот, и плагин WP Telegram.
Содержание
Telegram
Создание бота и получение API-токена
Начинаем с создания бота.
В телеге открываем чат с @BotFather, вызываем /start
– получаем подсказки по доступным командам:
Далее выполняем:
/newbot
- имя_бота
И получаем сообщение с API-токеном для авторизации бота:
Done! Congratulations on your new bot. You will find it at t.me/rtfmua_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you’ve finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API:
711225194:AAE***ZYU
Keep your token secure and store it safely, it can be used by anyone to control your bot.For a description of the Bot API, see this page: https://core.telegram.org/bots/api
Задаём картинку – вызываем /setuserpic
, и загружаем аватарку бота:
Создание канала и подключение бота
Создаём канал (разница между каналами и группами – см. тут>>>):
Переходим в канал, справа вверху выбираем Add members:
Находим нашего бота, и приглашаем его:
Задаём ему админские права:
Авториазция и получение ID канала
Для настройки плагина позже – надо найти ID канала, и тут пришлось немного поизвращаться.
Выполняем API-запрос getupdates
к боту, используя curl
:
[simterm]
$ curl https://api.telegram.org/bot<TOKEN>/getUpdates
[/simterm]
Вместо bot<TOKEN> – подставляем слово bot+сам токен, т.е. выглядит это как:
bot711225194:AA***ZYU
Только длиннее, и без звёздочек)
В ответ мы получаем JSON, в котором и есть chat_id
:
[simterm]
$ curl https://api.telegram.org/bot<TOKEN>/getUpdates {"ok":true,"result":[{"update_id":125734564, "channel_post":{"message_id":9,"author_signature":"setevoy","chat":{"id":-1001297641648,"title":"rtfm","username":"rtfmcoua","type":"channel"},"date":1548862854,"text":"/my_id @rtfmua_bot","entities":[{"offset":0,"length":6,"type":"bot_command"},{"offset":7,"length":11,"type":"mention"}]}}]}
[/simterm]
“chat”:{“id”:-1001297641648,”title”:”rtfm”,”username”:”rtfmcoua”,”type”:”channel”}
И проверяем – может ли бот постить в этот канал:
[simterm]
$ curl -X POST -H 'Content-Type: application/json' -d '{"chat_id": "-1001297641648", "text": "This is a test from curl", "disable_notification": true}' https://api.telegram.org/bot<TOKEN>/sendMessage
На этом с телеграмом закончили.
Плагин WP Telegram
Тут всё в пару кликов.
Устанавливаем WP Telegram, переходим в его настройки, задаём API-токен, жмём Test Token:
Далее, чуть ниже, справа от Post to Telegram жмём Settings, и там задаём ID канала (вроде можно просто по имени, но у меня тест сработал только по ID):
Тоже кликаем Send Test:
Готово.
Если обратить внимание на даты, то – “Не прошло и года”.