Telegram: канал и группа @rtfm, бот, API и кросспост из WordPress

Автор: | 01/30/2019
 

Давно хотел и просили добавить канал в Телеграме, и сделать кросспост постов из блога туда.

Всё не доходили руки сесть, и закончить — но теперь всё работает.

Сам канал в телеге — тут>>> (плюс открытая группа  тут>>>), а в этом посте — описание настройки.

Используется телеграм-бот, и плагин WP Telegram.

Telegram

Создание бота и получение API-токена

Начинаем с создания бота.

В телеге открываем чат с @BotFather, вызываем /start — получаем подсказки по доступным командам:

Далее выполняем:

  1. /newbot
  2. имя_бота

И получаем сообщение с 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:

curl https://api.telegram.org/bot<TOKEN>/getUpdates

Вместо bot<TOKEN> — подставляем слово bot+сам токен, т.е. выглядит это как:

bot711225194:AA***ZYU

Только длиннее, и без звёздочек)

В ответ мы получаем JSON, в котором и есть chat_id:

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"}]}}]}

«chat»:{«id»:-1001297641648,»title»:»rtfm»,»username»:»rtfmcoua»,»type»:»channel»}

И проверяем — может ли бот постить в этот канал:

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:

Готово.

Если обратить внимание на даты, то — «Не прошло и года».