Небольшой кейс по созданию канала с картинками, который будет наполняться без участия автора. При этом, все изображения для канала будут изначально под свободной лицензией, т. е. контент не будет нарушать ни чьих авторских прав. В процессе работы скрипта, не нужно будет скачивать и хранить где-либо изображения. Система всё сделает сама — сходит на сайт за картинкой, опубликует её в Telegram канале.
Для применения кейса необходимы базовые знания работы в терминале любой операционной системы Linux, понимание того как настраиваются периодические задания с помощью планировщика. Так же, для запуска скриптов понадобится либо сервер (самый простой, виртуальный), либо аккаунт на хостинге, в котором позволено будет по cron’у запустить скрипт.
Автор прекрасно понимает, что таких каналов в Telegram уже огромное количество, и что они не особо-то и нужны, однако автору было нечего делать, не спалось и хотелось чем-то себя развлечь.
Итак, для организации самонаполняемого канала, нам нужно три вещи:
Получаем список ссылок.
Материал для публикации мы будем получать с сайта stocksnap.io, все изображения на этом сайте распространяются под лицензией CC0, а значит проблем с авторскими правами у нас не случится. Список ссылок на изображения в нужной категории мы получим с помощью скрипта, который через API сайта заберёт нужную информацию. Результатом работы скрипта будет файл, в котором будет список прямых ссылок на изображения.
Запускается он вот так, с параметрами:
# ./downloader food 1
./downloader — имя скрипта.
food — категория, из которой мы будем собирать изображения. Найти все доступные категории можно здесь https://stocksnap.io/popular
1 — страница, с которой скрипт начнёт собирать информацию. На сайте организован постраничный вывод изображений. Как только пользователь докручивает колесо мыши до нижней части страницы, ему подгружается новая порция картинок. Каждая порция картинок, во внутренностях сайта описана на отдельной странице. Что бы не заморачивать себя и получить все изображения из категории здесь можно всегда использовать единичку.
В процессе работы, скрипт с помощью wget будет по API скачивать служебную информацию, затем из всех страниц со служебной информацией, будет сформирован файл, содержащий список ссылок с именем food.url.list. Этот файл будет использоваться нашим ботом для постинга изображений в канал. Так же, этот файл, при необходимости, можно использовать для скачивания всех изображений себе (для работы бота это не обязательно).
Краткое резюме — мы запускаем скрипт и когда он отработает, получаем файл со списком ссылок на изображения нужной нам категории.
Регистрируем бота в Telegram.
Когда бот будет готов, добавляем его в наш канал администратором. После того как бот будет добавлен в канал, узнаем ID канала, который нам так же потребуется для работы скрипта. ID узнаём следующим образом:
- После того как бот добавлен администратором, отправляем в канал любое сообщение.
- В браузере переходим по ссылке https://api.telegram.org/botНАШТОКЕН/getUpdates и видим текст, в котором находим кусок вида:
«chat»:
В данном случае, нужным нам ID канала будет -1013332055484 (именно так, со знаком минус).
Краткое резюме второго этапа — мы создали бота, получили его токен (НАШТОКЕН), добавили бота к себе в канал, узнали ID канала.
Постим изображения в канал с помощью бота.
Для постинга изображений мы будем использовать telegram bot api. Через бота, мы будем оформлять пост-картинку и отправлять его в канал с отключенным уведомлением. Такие запросы можно делать из браузера, но для скрипта мы используем wget (да, да, можно и curl, но я люблю wget) Вручную это выглядит примерно так (токен тут не существующий если что):
Разберём что бы было понятно:
sendPhoto — отправляем изображение.
chat_id=-1001132088554 — в наш канал.
photo= — изображение берём по ссылке.
caption= — добавляем текст к изображению.
disable_notification= — отключаем уведомление для этого сообщения.
Если всё сделано верно, то наш бот, которого мы добавили в канал администратором, запостил изображение, с названием нашего канала в подписи к картинке. Теперь нам остаётся этот процесс автоматизировать.
У меня на сервере, создана следующая структура для работы этого скрипта:
/opt/telegram/ — директория в которой происходит работа
/opt/telegram/superchannel/ — директория в которой лежит скрипт постинга и файл со ссылками
/opt/telegram/superchannel/food.url.list — файл со ссылками
/opt/telegram/superchannel/postbot — скрипт для постинга
В самом скрипте, используются следующие переменные:
botToken — полученный нами НАШТОКЕН.
channelId — ID нашего канала.
channelName — имя нашего канала.
postImage — получение случайной ссылки из файла /opt/telegram/superchannel/food.url.list
Эти параметры вам нужно будет настроить в соответствии с вашим окружением и расположением файлов на сервере.
При запуске, скрипт выбирает случайный адрес изображения из файла food.url.list и отправляет в канал пост с ним. Из общего списка этот адрес удаляется, дабы избежать дублей в дальнейшем.
Скрипт не забываем сделать исполняемым:
# chmod +x /opt/telegram/superchannel/postbot
Резюмирую третью часть — у нас есть сервер, на котором в нужной нам директории лежит скрипт постинга и файл со ссылками. В скрипте верно прописаны токен, ID канала, название канала и путь до файла. При ручном вызове скрипта, бот в канале постит одну картинку:
# /opt/telegram/superchannel/postbot
Автоматизируем постинг в нужное нам время.
Для автоматизации постинга достаточно просто добавить соответствующее задание в cron. Для редактирования заданий прямо из консоли выполняем команду:
# crontab -e
В открывшемся редакторе (какой будет редактор зависит от настроек админа сервера) мы вводим, например такое задание:
00 08,13,18 * * * /opt/telegram/superchannel/postbot
Сохраняем изменения и выходим из редактора.
Текущее правило будет запускать наш скрипт каждый день в 08, 13 и 18 часов по серверному времени. В это время на канале будет публиковаться один пост-картинка.
Подходя к завершению и резюмируя всё.
Конкурс с кнопкой в Телеграм канале
Ещё один быстрый способ провести конкурс в Телеграм канале это использование кнопки «Участвую». Кнопка под конкурсным постом добавляется с помощью нашего бота. Подписчикам необходимо просто нажать на нее, чтобы стать участником конкурса.
2 способа, как можно пригласить участника в группу в Телеграме и проблемы
Пользователи мессенджера часто интересуются, как пригласить людей в свою группу в Телеграме. Создать собственный канал или сообщество в приложении может любой желающий. С помощью функций Telegram абоненты имеют возможность добавлять записи, видео, фото, общаться друг с другом или одновременно с несколькими пользователями. В мессенджере можно создать приватный чат для друзей и переписываться с ними, пользуясь смартфоном или компьютером.
Как добавить человека в группу в Телеграме
Функция добавления участников доступна абонентам мессенджера, имеющим аккаунт в этом приложении, а также личный канал или созданное сообщество. Правда, прежде чем добавлять людей в свой чат, нужно иметь несколько знакомых, друзей, родственников, пользующихся мессенджером. Их имена, фамилии или ники должны находиться в списке контактов в диалоговом окне. Приложение предоставляет своим абонентам возможность добавлять большое количество людей в чат. Общение может быть приватным или публичным. В диалоге могут принимать участие два, три или несколько сотен человек. Расширить аудиторию можно двумя способами: вручную, приглашая пользователей, или автоматически, рассылая ссылку на свой контент в мессенджере или по другим сайтам.
Ручное добавление
- зайти в приложение;
- добавить канал или группу, используя возможности приложения;
- в функциях мессенджера найти фразу «Добавить участников»;
- в открывшемся в окошке списке отметить людей, которые будут приглашены в чат;
- добавить выбранных пользователей.
Пригласительные ссылки
Как завлечь участников на свой канал или в сообщество:
- открыть Телеграм;
- добавить контент при помощи предложенных функций мессенджера;
- найти в меню фразу «Управление группой» или «Управление каналом» и перейти в «Настройки»;
- выбрать функцию «Создать приглашение» или «Пригласить в группу по ссылке»;
- придумать текст, то есть написать латинскими буквами слово из 9 знаков;
- приложение может самостоятельно предоставить готовую ссылку (она находится в разделе «Тип группы» или «Тип канала»);
- ссылку можно копировать, сбросить или поделиться;
- разослать приглашение абонентам мессенджера или по разным сайтам.
Возможные проблемы
Многие пользователи Телеграма создают собственное сообщество, стараются сделать его максимально интересным и познавательным. Правда, если никто из людей не читает опубликованные записи, не просматривает фотографии, видео, то само существование аккаунта становится бессмысленным. Обычно создатели контента приглашают к общению знакомых, друзей, родственников, чьи контакты высвечиваются в диалоговом окне. Это самый простой и безопасный способ расширить аудиторию.
Привлечь людей на созданную площадку в рамках Telegram можно при помощи ссылки. Ее размещают на различных интернет-платформах, в социальных сетях (ВКонтакте, Инстаграме, Фейсбуке, Ютубе), рассылают абонентам Телеграма, друзьям, единомышленникам, родственникам или участникам сообществ.
Активная рассылка воспринимается любым сайтом как спам. Автоматически такое действие попадает в список нарушений. За рассылку можно даже попасть в бан. Лучше приглашениями не злоупотреблять. Модераторы могут заблокировать пользователя, активно приглашающего людей посетить свой контент.
Блокировка может быть временной или постоянной. Для того чтобы восстановиться, нужно будет связываться со службой технической поддержки и доказывать модератору свою невиновность.
Источник: it-tehnik.ru