Как сделать в Телеграмм канале комментарии? 7 Telegram-ботов!
Чтобы пользователи имели возможность оставлять комментарии, к созданному каналу понадобится привязать группу. Можно использовать уже существующую или создать новую. Новую группу можно создать в процессе добавления комментариев на канал.
- Создаем или заходим в уже созданный канал;
- Нажимаем на его название;
- Теперь жмем на иконку карандаша в правом верхнем углу;
- Далее мы ищем пункт «Обсуждение» и нажимаем на него;
- На этом этапе нам нужно определиться. Выбрать уже созданную группу или сделать новую. Предположим, что группы у нас нет. Поэтому мы жмем на кнопку «Создать группу»;
- После нажатия нам предлагают выбрать название для группы. Вписываем его и подтверждаем;
- Нажимаем на галочку в правом верхнем углу и все готово.
На IOS (iPhone, Ipad)
Процесс на этой операционной системе мало чем отличается от процесса добавления комментариев на Android. Поэтому попробуем сначала создать группу, а потом ее привяжем:
- Ищем иконку с карандашом в правом верхнем углу и нажимаем на нее;
- Теперь находим пункт «Создать группу»;
- Далее в нее придется добавить как минимум одного пользователя, не считая вас, и придумать название;
- Группу нужно сделать публичной, чтобы люди могли комментировать. Для этого зайдите в нее и в настройках выберите тип группы «Публичный». Придумайте ей уникальный адрес и нажмите «Готово».;
- Теперь созданную группу привяжем к нужному каналу. Заходим в него, открываем управление каналом, пункт «Обсуждение» и выбираем созданную группу.
У постов появиться возможность комментирования. Помимо этого, они будут дублироваться в группе, которую вы привязали.
На компьютере
Тот же процесс. Давайте разберем способ с самого начала, если у вас еще нет канала.
- Нажимаем на три горизонтальные полоски в правом верхнем углу;
- Выбираем «Создать канал»
- Придумываем название и нажимаем «Создать»;
- Теперь выбираем тип канала: «Публичный» или «Частный»;
- Нам нужен публичный. Выбираем его и жмем «Сохранить»;
- Вам предложат добавить участников, но это вы уже делаете по желанию;
- Теперь мы можем привязать к каналу группу. Заходим в него и нажимаем на три точки в верхнем правом углу. Затем «Управление каналом», а потом выбираем пункт «Обсуждение»;
- Тут мы можем все так же создать или выбрать существующую группу;
- Так как подходящей группы у нас нет — жмем «Создать группу»;
- Вводим название и успешно ее создаем. После этого посты можно комментировать.
Теперь под каждым новым постом автоматически будет появляться кнопка «Прокомментировать».
Если люди будут оставлять комментарии, то под постом появятся их аватары и общее количество комментариев.
Если будут комментарии, то появится ветка, где пост будет выглядеть, как закрепленный.
Если канал ведет команда людей или вы просто не хотите писать что-то от своего имени, то вы можете отвечать в чате и на полученные комментарии от имени группы. Это позволит участникам понять, кто отвечает на их вопрос, пользователь или администратор.
- Для этого откройте настройки чата для канала.
- Перейдите к разделу «Администраторы».
- Выберите администратора, который сможет отвечать от имени группы/канала и активируйте переключатель «Анонимность».
- Администраторы с включенной опции анонимности теперь смогут отвечать от имени группы/канала.
Постинг в канал telegram с помощью python или бот telegram в 3 строчки
Предположим надо написать телеграмм бота, который при появлении свежей новости на сайте пишет в канал. Практическое применение для меня было в том, что на одном сайте изредка появляется важная информация, которую пропускать не хотелось, но и постоянно мониторить сайт тоже. В итоге захотелось написать максимально простой и минималистичный python скрипт, выполнющий задачу постинга в канал telegram и не использующий даже базу данных. Такая простота достигается следующим образом: по крону раз в сутки запускается программа, которая вытягивает все новости за вчерашний день. Непосредственно отправление сообщения в канал занимает 3 строчки, подробнее об этом конце, а сейчас разделим задачу на несколько логических последовательных подзадач:
-
Отслеживание появления новости
- 1.1 Запрос html страницы (использование бибиотеки requests)
- 1.2 Парсинг html страницы (здесь будем использовать питон библиотеку BeautifulSoup)
- 1.3 разбивка списка новостей на старые и новые публикации
- 2.1 Создание канала а также бота с помощью BotFather и добавление бота в администраторы канала
- 2.2 Выбор библиотеки и её инициализация с помощью токена telegram, полученного от все того же BotFather (в нашем случае это библиотека python-telegram-bot )
- 2.3 Отправка сообщения.
- раз в сутки: «1 12 * * * /path/to/bot.py >/dev/null 2>&1″
Таким вот несложным образом создан информационный telegram бот для канала. В канал можно приглашать других пользователей и они будут получать пуш-уведомления. Если сделать сухую выжимку из всего кода выше, то непосредственно отправка сообщения канал telegram займет 3 строчки:
import telegram
bot = telegram.Bot(token=’123456789:AABBCCDDefgh_mnaviwuue_DP865Y’)
bot.send_message(chat_id=’@here_some_channel_to_post’, text=’some text to post’)
theVovannn
Небольшое описание процесса подключения к сервису автопостинга.
Для подключения бота скопируйте имя бота и вставьте в поиске телеграм @autotg2vkbot
Далее выберите в поиске TG2VK и подключитесь к чату.
Затем нажмите кнопку СТАРТ в чате.
Появиться окно с ссылкой, жмем Открыть.
В открывшемся окне браузера нажать Разрешить. Таким образом Вы предоставите доступ к сообществам или группам нашему приложению «Wallposter», через которое бот будет публиковать Ваши посты.
После чего в адресной строке скопируйте ссылку полностью.
В чате с ботом нужно отправить эту ссылку сообщением.
Если все правильно сделали, то бот выведет Вам список Ваших групп и сообществ, в которых у Вас есть права администратора.
Все подсказки по авторизации выводятся поэтапно в чате с ботом, можно не беспокоиться, что что-то забудете из инструкции.
После окончания всех тестов, будет запущен Web-интерфейс и больше не нужно будет мучиться с копированием ссылок, все будет проходить в автоматическом режиме, но пока что так.
Создайте
В боте уже настроена реферальная система. Вам лишь стоит указать %, который будут получать клиенты за рефералов.
Подробнее
TGStat
Это самый крупный сервис, где есть открытая статистика всех Telegram-каналов, которые добавлены в их каталог. У них есть ежедневная индексация публикаций, рейтинг каналов по разным и темам, а также поиск каналов и постов.
Среди возможностей сервиса — аналитика каналов, которая обновляется каждый день, отслеживание упоминаний, а также прием заявок на рекламу и установление стоимости рекламной публикации.
Получаем записи
В качестве “подопытного кролика” выберем официальный блог ВКонтакте. Получать новые записи будем при помощи VK API. Итак, сформируем ссылку, которая будет нам возвращать последние 10 записей от имени сообщества из группы VK Team: https://api.vk.com/method/wall.get?domain=team&count=10&filter=owner&access_token=token&v=5.68 Что здесь что? domain — короткое имя сообщества. Если его нет, то меняем domain=xxx на owner_id=-yyy (обратите внимание на минус перед числом, это важно). count — число выводимых записей. Чем дольше пауза между проверками и чем чаще в сообществе появляются записи, тем большее число нужно выставить, но не более 100. filter=owner просит сервер выводить записи только от имени группы, полезно, если стена открыта, access_token — это токен пользователя, который «дёргает» API от имени одного из приложений, а v=5.68 – номер используемой версии API. При использовании более свежей версии (5.100 и выше), структура ответа будет другой, оставляю это для самостоятельного изучения. Давайте теперь создадим файл bot.py , в котором зададим основные константы и импорты:
Во-первых, не забудьте сделать нужного бота администратором канала, иначе фокус не удастся. Во-вторых, обратите внимание, что в импортах появилась библиотека eventlet , она поможет нам избежать проблем при получении записей из ВК. В-третьих, в указанный txt-файл будем записывать номер верхнего поста на момент проверки, я решил не заморачиваться с созданием key-value хранилищ, ради одного числа-то. В-четвёртых, в качестве параметра BASE_POST_URL указываем ссылку на любой пост из нашей группы без последнего числа.
Иногда ВК начинает дурить и не возвращает список постов за приемлемое время. В этом случае, нам нужно отвалиться по таймауту и пропустить проверку. Можно, конечно, попробовать ещё раз, но мы люди не настойчивые 🙂
Суть простая: получилось — возвращаем объект с постами. Не получилось — возвращаем None. Теперь перейдем непосредственно к парсингу. Алгоритм будет такой:
- Открываем файл, хранящий последний известный номер верхнего поста.
- Если метод get_data() вернул объект с записями, начинаем проходить по нему со второго элемента, т.к. первый — какое-то неизвестное мне рандомное число.
- Если номер поста меньше или равен последнему известному — завершаем обход.
- Проверяем наличие закрепленного поста. Если таковой есть, то передаем функции отправки сообщений все записи, кроме закрепленной. Иначе — просто передаем все.
- У каждой проверяемой записи забираем ID, подставляем рядом с BASE_POST_URL и получаем полный ID записи.
- Отправляем его в канал.
- Как только обход завершился, берем номер первой (второй, если первая — закрепленная) записи и записываем в файл поверх старого значения.
- Засыпаем или завершаемся.
По поводу п.8: дополнительно предусмотрим в нашей программе два режима: в первом режиме скрипт постоянно работает, засыпая после каждой итерации на 4 минуты; во втором режиме скрипт просто завершает работу, что позволяет ставить его в планировщик cron. В определении режима нам поможет константная переменная SINGLE_RUN, которую надо не забыть указать где-нибудь вверху.
Осталось дело за малым — написать логику запуска всего процесса и инициализировать логгер, который будет писать в текстовый файлик обо всех событиях в жизни бота:
Перед запуском бота, создадим вручную файл last_known_id.txt и впишем в него один из последних числовых ID, в моём случае это было чудесное число 1893. После включения бота, в зависимости от значения SINGLE_RUN, он будет либо постоянно работать, проверяя каждые 4 минуты на наличие новых постов, либо завершится после окончания первой проверки. Для себя я выбрал второй вариант, добавив скрипт в cron.
На сегодня всё, теперь вы можете легко и просто настроить автопостинг записей практически из любой группы ВК в свой канал.