Telegram бот и PHP скрипт Markdown разметки постов
TelegramSM — PHP-скрипт, позволяющий публиковать на telegram-канале сообщения с использованием разметки Markdown, через созданного бота. Из статьи вы узнаете об интерфейсе предлагаемого решения и получите пошаговую инструкцию создания Telegram бота и настройки TelegramSM.
Цена TelegramSM всего 10 руб.
Демо сайт TelegramSM | Демо Telegram канал | Описание товара | Покупка товара
Демо сайт TelegramSM | Демо Telegram канал | Описание товара | Покупка товара
Интерфейс TelegramSM состоит из:
- подсказок доступной в Telegram разметки Markdown;
- поля ввода сообщения с разметкой Markdown;
- поля предпросмотра публикуемого сообщения
- дополнительных опций:
- disable link preview — отключает генерацию сниппета для ссылок из сообщения (по умолчанию включено),
- disable notification — отключает оповещение подписчиков о публикации (по умолчанию выключено).
- Кнопки для публикации сообщения.
Примечания:
- В сообщении можно использовать unicode для вставки emoji (смайликов), но в скрипте эта функция не реализована. Как вариант, копировать отсюда.
- Скрипт не позволяет публиковать фотографии, видео и прочие документы, только сообщения с разметкой Markdown.
Шаг 1: создайте telegram бота
Для использования Telegram Bot API вам понадобится создать бота. В нашем случае это ключ (token) бота.
- Перейдите по ссылке @BotFather к родительскому боду.
- Кликните кнопку «Start».
- Кликните или ведите вручную команду
/newbot
. - Вы получите сообщение
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
На этом шаге вам нужно придумать и ввести название (имя) бота (например, Tetris). Нажмите Enter. - Вы получите сообщение
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
На этом шаге вам нужно придумать и ввести юзернейм (уникальный идентификатор) бота, которое должно заканчиваться на`bot`
(например, TetrisBot или tetris_bot). - Вы получите сообщение о создании бота и уникальный ключ (
token
) для доступа к Telegram Bot API по HTTP.
Шаг 2: добавьте бота в администраторы telegram канала
Для доступа бота к каналу, ему нужно предоставить права администратора.
- Зайдите на свой канал.
- Откройте информационную страницу канала (на десктопе — стрелочка вправа в верхнем правом углу).
- На открывшееся странице, в секции «Members», кликните ссылку «N administrators» (вместо N будет количество администраторов канала).
- В открывшемся окне, кликните ссылку «New administrator».
- В открывшемся окне, в поле «Search», введите юзернейм (уникальный) идентификатор бота и кликните пункт со своим найденным ботом.
Шаг 3: настройте PHP-скрипта TelegramSM
TelegramSM — PHP-скрипт, позволяющий публиковать на telegram-канале сообщения с использованием разметки Markdown, через созданного бота.
- Откройте файл TelegramSM.php в любом текстовом редакторе (например, стандартный «Блокнот» Windows или Notepad++).
- Найдите следующие строки:
# Begin Config
$token = '';
$chat_id = '';
# End Config - В качестве значения переменной
$token
укажите ключ (token) полученный при создании бота. - В качестве значения переменной
$chat_id
укажите юзернейм telegram канала (без знака@
). - Сохраните файл и скопируйте его на сервер (это может быть локальный сервер или сервер вашего хостинг провайдера, в последнем случае вам нужно закрыть доступ к PHP-скрипту для посторонних).
Скрипт отличный.
Протестировал на демо сайте и теперь 2 вопроса:
1) Он выкладывает пост не сразу. От чего это зависит и как определить через сколько пост будет выложен в канале?
2) После того, как набираешь пост и нажимаешь кнопку "отправить" открывается страница с кодом. Это важно/нужно?
3) Реально ли прикрутить расписание?
Спасибо!
2Руслан Фатхутдинов
1) Он выкладывает пост сразу после клика "отправить", может быть задержка в пару сек, но не более. Возможно на мобильных, время обновление данных в приложении больше, но это уже особенность работы самого приложения, а не API.
2) Да, после публикации, в случае успеха, скрипт возвращает ответ сервера в формате json. Я просто оставил var_dump() для удобства дальнейшей доработки при желании со стороны владельца... ну вместо банального "Сообщение отправлено" :)
3) Для реализации планировщика нужна серьёзная доработка:
а) Понадобится база для временного размещения поста с указанием даты/времени публикации и сама функция для добавления поста в эту базу.
в) Также нужно будет допилить текущий скрипт, чтоб он проверял наличи подходящего по дате/времени поста в базе и его публикации (последнее реализовано). Само собой, его придётся подвесить на Cron с соответствующей частатой запросов на проверку наличия постов для публикации.
В общем, сделать можно что угодно, было бы желание )))
Это очень круто. Спасибо
Константин, почему не сделать кнопки активными, как в редакторе? Написал текст, выделил и нажал кнопку. Текст обрамился кодом
Изображение не вставляется. Реально сделать?
Смайлы прикрутить можно?
Реализовать можно что угодно, было бы желание и спрос. На данный момент нет ни того, ни другого. За всё время продаж (уже около недели) было всего 2 покупки, и это при цене в 10 руб. Скрипт выполняет поставленную задачу — позволяет опубликовать сообщение, используя Markdown, остальное изыски, которые не особо важны. Сейчас вообще тенденция — «одна кнопка».
Теперь его можно использовать. Обратитесь к PHP скрипту у себя на сервере и вы увидите форму как на скриншоте в начале статьи. Пишите сообщение с разметкой и кликаете кнопку «Отправить». Вуаля, сообщение с разметкой опубликовано на вашем канале.
где взять этот скрипт, что то не могу понять третий пункт
Его можно только купить
Предпросмотр ссылок не работает.
Чтоб вставлялось изображение, его надо вставлять в стиле Маркдаун,
например привязать к точке
[.](http://s16.radikal.ru/i191/1012/4e/41c5998e32eft.jpg)
и поправить код
$preview = isset($_POST['preview']) ? (int) $_POST['preview'] : 0;
- поставить в конце 0 вместо единицы в строке 20