Автопостинг из вк в телеграм канал. Как настроить автопостинг в телеграмм. Зачем нужна автоматическая публикация записей с других ресурсов

С 20 июля вступают в силу основные положения пакета антитеррористических законопроектов, или, как его окрестили СМИ по имени одного из авторов, .

В Уголовном кодексе в числе преступлений против мира и безопасности человечества появился новый состав преступления — "международный терроризм": это совершение за пределами территории России взрыва, поджога или иных действий, подвергающих опасности жизнь, здоровье, свободу или неприкосновенность граждан РФ в целях нарушения мирного сосуществования государств и народов, либо направленных против интересов РФ, а также угроза совершения указанных действий. За это будет грозить лишение свободы от 10 до 20 лет либо пожизненное заключение.

Нижняя уголовная "планка" по статье "теракт" поднимается с 8 до 10 лет и с 10 до 12 лет, если преступление было совершено группой лиц или повлекло смерть человека.

Также пожизненное заключение — либо от 15 до 20 лет тюрьмы — может быть назначено за финансирование международного терроризма, если в результате преступлений погибли люди.

Публичные призывы к терроризму или его публичное оправдание в Интернете будут грозить штрафом до 1 миллиона рублей или лишением свободы на срок от 5 до 7 лет, а участие в террористической организации будет караться тюремными сроками от 10 до 20 лет.

Законом введена новая статья УК, где прописаны санкции за несообщение о подготовке или совершении террористических преступлений. Это будет наказываться штрафом до 100 тысяч рублей либо принудительными работами на срок до 1 года, либо лишением свободы на тот же срок. При этом гражданин не будет нести ответственности за несообщение о подготовке или совершении преступления его супругом или близким родственником.

В Уголовном кодексе также ужесточается наказание за организацию незаконного вооруженного формирования или участие в нем, а возрастной порог за умышленный терроризм понижается до 14 лет.

Отдельный блок поправок определяет понятие "миссионерская деятельность" и запрещает ее вести от лица религиозных объединений, цели которых противоречат закону.

Однако самым противоречивым компонентом поправок стали также вступающие в силу с 20 июля о хранении сведений о фактах приема, передачи, доставки и обработки голосовой информации и текстовых сообщений, изображений, звуков и видео. Срок хранения таких данных для операторов — 3 года, для интернет-компаний — 1 год. Всю эту информацию необходимо будет предоставлять по запросу спецслужб.

Также "пакет Яровой" вводит для интернет-компаний обязанность по раскрытию ключей шифрования сообщений при использовании дополнительного кодирования. У бизнеса пока нет ясного понимания того, как исполнять новый закон. Президент России , подписав антитеррористический пакет, также поручил правительству и ФСБ проработать вопрос минимизации возможных рисков, связанных с реализацией пакета.

Сегодня Президент РФ Владимир Путин подписал законы, направленные на борьбу с терроризмом и обеспечение общественной безопасности (так называемый "пакет Яровой"). В связи с этим в российское законодательство внесен ряд существенных изменений.

Один из законов направлен на усиление уголовной ответственности за преступления террористической направленности (Федеральный закон от 6 июля 2016 г. № 375-ФЗ " ").

В частности, расширен перечень преступлений террористической направленности, ответственность за которые наступает с 14 лет. Речь идет о таких преступлениях как прохождение обучения в целях осуществления террористической деятельности, участие в террористическом сообществе, участие в деятельности террористической организации, несообщение о преступлении, акт международного терроризма и ряд других.

Несообщение о преступлении является новым составом в УК РФ. Уголовная ответственность в данном случае установлена за несообщение в уполномоченные органы о лице (лицах), которое по достоверно известным сведениям готовит, совершает или совершило хотя бы одно из преступлений террористической направленности. Максимальная санкция за совершение данного деяния – лишение свободы на срок до одного года. При этом установлено, что уголовной ответственности не подлежит лицо, которое не сообщило о подготовке или совершении преступления его супругом или близким родственником.

Также в УК РФ введен состав преступления "акт международного терроризма": совершение вне пределов территории России взрыва, поджога или иных действий, подвергающих опасности жизнь, здоровье, свободу или неприкосновенность граждан РФ, в целях нарушения мирного сосуществования государств и народов либо направленных против интересов России. Максимальное наказание за данное преступление – пожизненное лишение свободы.

Указанным законом также предусмотрена возможность по решению суда проводить осмотр и выемку электронных сообщений, передаваемых по сетям электросвязи, при наличии достаточных оснований полагать, что они могут содержать информацию, имеющую значение для уголовного дела.

Вторым законом вводятся другие дополнительные меры, направленные на борьбу с терроризмом (Федеральный закон от 06 июля 2016 г. № 374-ФЗ " ").

Так, с 1 июля 2018 года операторы связи будут обязаны хранить на территории РФ текстовые сообщения пользователей услугами связи, голосовую информацию, изображения, звуки, видео-, иные сообщения пользователей. Срок такого хранения может составлять до шести месяцев с момента окончания их приема, передачи, доставки или обработки, а более конкретные порядок, сроки и объем хранения будет устанавливать Правительство РФ.

Аналогичная обязанность с указанной даты будет возложена на организаторов распространения информации в Интернете относительно электронных сообщений и данных пользователей. Сообщения при этом также должны храниться до шести месяцев. Кроме того, такие организаторы будут обязаны передавать в федеральный исполнительный орган в области обеспечения безопасности информацию, необходимую для декодирования электронных сообщений, в случаях, если у пользователей есть возможность дополнительного кодирования сообщений.

Операторы связи и организаторы распространения информации в Интернете также будут обязаны хранить информацию о сообщениях пользователей, причем в течение более длительного срока, чем сами сообщения. Для операторов связи такой срок составит три года с момента окончания приема, передачи, доставки или обработки информации, а для организаторов распространения информации в Интернете – год с того же момента.

В соответствии с данным законом в регионах могут создаваться антитеррористические комиссии, решения которых обязательны.

Новым законом также запрещено осуществление миссионерской деятельности (то есть деятельности религиозного объединения, направленной на распространение вероучения и привлечение лиц к участию в деятельности такого объединения) в жилом помещении. Исключения касаются только богослужений, других религиозных обрядов и церемоний. Осуществлять такую деятельность граждане, иностранные граждане, лица без гражданства и юрлица смогут только если религиозная организация наделила их соответствующими полномочиями.

Также не допускается миссионерская деятельность, направленная на нарушение общественной безопасности и общественного порядка, осуществление экстремистской деятельности, посягательство на личность, права и свободы граждан и так далее.

Все перечисленные изменения вступят в силу 20 июля, за исключением тех, для которых установлен иной срок (1 июля 2018 года).

Автоматическая трансляция сообщений между сайтами, блогами и соцсетями может осуществляться с помощью отдельного программного обеспечения, однако чаще всего такая функция реализовывается непосредственно на серверах сайтов. Автопостинг в Телеграмм выполняется с помощью роботизированных аккаунтов (ботов), которые призваны упростить взаимодействие пользователя с мессенджером, мгновенно передавая серверу команды для выполнения той или иной операции.


Автопостинг в Телеграмм выполняется с помощью роботизированных аккаунтов

Зачем нужна автоматическая публикация записей с других ресурсов

Само по себе ведение определенной страницы в соцсети накладывает на ее владельца некоторые обязательства. Чтобы количество подписчиков неизменно росло или, как минимум, оставалось на том же уровне, необходимо постоянно обновлять контент, предоставляя информацию, которая может заинтересовать посетителей. Работа контент-менеджера достаточно трудоемкая, а если нужно поддерживать не одну, а несколько страниц из разных соцсетей, сложность задачи увеличивается многократно.
Наличие функции автопостинга в Телеграмм позволяет соединить каналы и группы с внешними источниками. То есть при обновлении информации, например в Twitter или ВКонтакте, она тут же будет появляться и в Telegram. Для чего это нужно?


Публикация записей с других ресурсов происходит автоматически

Во-первых, применение автоматической публикации способствует более быстрой раскрутке сообщества, поскольку его лента будет постоянно пополняться новым контентом. Во-вторых, на размещение постов в этом случае тратится на порядок меньше времени, кроме того, одной записью можно охватить более крупную аудиторию.

Автопостинг в Телеграмм из Twitter, RSS, VK, YouTube

Перейдем непосредственно к одному из методов реализации автопостинга в данном мессенджере. Для этого воспользуемся «услугами» чат-бота . Инструкция по настройке автоматической трансляции с помощью этого робота выглядит следующим образом:


Реализация автопостинга в мессенджере из других социальных сетей
      1. Находим в поиске бот , нажимаем на его имя и начинаем с ним диалог.
      2. Чтобы реализовать функцию автоматической трансляции записей, пользователю будет предложено создать своего бота. Для этого вводим команду /addbot или выбираем пункт «Добавить нового бота» из меню, которое расположено внизу экрана.
      3. В диалоговом окне появится инструкция по созданию бота, согласно которой необходимо выполнить следующие действия:
        1. начать диалог с ботом ;
        2. ввести команду /newbot;
        3. придумать имя (на любом языке) и ссылку (на английском), которая должна обязательно иметь окончание «bot», например (это название будем использовать в дальнейшем в качестве примера);
        4. получить от API токен (ключ) и скопировать его;
        5. перейти обратно в диалог с и вставить ключ в поле ввода сообщений.
      4. После корректного ввода ключа появится сообщение о том, что ваш токен принят, а бот создан и настроен. Дальше работа ведется с новосозданным ботом.
      5. Создаем диалог с , для чего нажимаем его имя.
      6. Посылаем боту команду /autoposting.
      7. Открывается меню, в котором можно выбрать источник трансляции. Доступны следующие сервисы: Twitter, YouTube, VK, RSS.
      8. После выбора сервиса, предлагается указать ссылку на собственный аккаунт в нем.
      9. Делаем администратором канала или группы, для которых создается автотрансляция.

Выполнив все пункты данной инструкции, бот будет автоматически обновлять контент конкретного канала/группы с помощью новых записей из указанных источников.

Простой метод реализации автопостинга со страниц и групп ВКонтакте

Существует еще один робот, который позволяет автоматизировать публикацию записей. Его имя — . Несмотря на то что он адаптирован исключительно под трансляцию из ВКонтакте, для многих русскоязычных пользователей мессенджера этого вполне достаточно. Тем более что настройка занимает не более 5 минут. Для этого нужно:

  1. Найти в поиске , нажать на его имя и начать с ним диалог.
  2. Для настройки автопостинга пользователю будет предложено перейти по ссылке и следовать указаниям.
  3. При переходе по ссылке в браузере откроется страница, где будет указан код, например /startL5D69NPu0KJaqybR, который нужно скопировать.
  4. Необходимо вернуться обратно в мессенджер и отправить сообщение с кодом роботу .
  5. Если код введен верно, пользователю придет уведомление об успешной авторизации и будет предложено вернуться на страницу браузера.
  6. По возвращению в браузер появится диалоговое окно, в котором необходимо:
    1. в соответствующих полях указать название группы ВКонтакте и канала Телеграмм;
    2. нажать кнопку «Сохранить».
  7. Последний этап – добавление в администраторы канала (в противном случае робот не сможет отправлять туда записи).

Реализация этой функции из социальной сети ВКонтакте

Для работы автопостинга нужно, чтобы группа/страница VK была открыта всем пользователям интернета. Робот мониторит контент группы ВКонтакте каждые 10 минут и при появлении новых постов сразу пересылает их в Телеграмм.
Методы по настройке автоматизированной трансляции, указанные выше, являются одними из наиболее простых и доступны любому пользователю Телеграмм. Главное, что они позволяют реализовать данную функцию достаточно быстро и без единой строчки кода, поэтому знаний в области программирования не потребуется.

Примечание: в начале 2017 года ВК начал требовать токен пользователя для вызова метода wall.get и многих других. Процесс получения токена для ВК не относится к теме учебника, следовательно, описан не будет. По ссылке https://vk.com/dev/manuals любой желающий сможет найти документацию и описание процесса получения токена.

Для начала — небольшое лирическое отступление.
Когда в Telegram появились каналы , поначалу я к ним относился как к неудачной попытке клонировать Twitter. Сразу появились тупые канальчики с тупыми картиночками, что только усугубляло положение дел. Однако сейчас, спустя больше месяца, моё мнение изменилось на диаметрально противоположное. Призванные заменить списки рассылки (ими вообще кто-то пользовался?), каналы дали возможность получать огромное количество контента, которым можно делиться, который можно сохранять.

В Bot FAQ есть интересная фраза: "Мы будем внимательно смотреть на то, как люди пользуются ботами и развивать их в том направлении". С учетом того, что многие боты занимались именно рассылкой информации, каналы - это очень логичный и правильный шаг в развитии автоматизированных средств.
С точки зрения программиста, каналы решают сразу несколько ключевых проблем:

  1. Не надо зависеть от серверов Telegram, т.к. нет входящих сообщений.
  2. Анонимная рассылка сообщений (некоторые люди просили сделать возможность отправлять свои сообщения через "безликого" бота) максимально упростилась.
  3. Не надо вести списки пользователей, которым нужно отправить информацию и внедрять паузы между отправкой сообщения по очереди всем, эту заботу берёт на себя сам Telegram.

Лично я заметил, что некоторые паблики и группы ВКонтакте стали дублировать свои записи в каналы Telegram. Сегодня мы научимся делать то же самое без помощи каких-либо конструкторов или сторонних веб-сайтов. Чтобы не сильно заморачиваться, будем постить только ссылку на пост, превью к ней и так даст необходимый минимум информации о посте.

Получаем записи

В качестве "подопытного кролика" я выбрал свою маленькую, но очень гордую группу с музыкой C:\Music . Получать новые записи будем при помощи VK API, при этом нам не нужно заморачиваться с созданием приложений, т.к. получить записи со стены можно даже без авторизации ВКонтакте (если в настройках сообщества не указано обратно)
Итак, сформируем ссылку, которая будет нам возвращать последние 10 записей от имени сообщества из группы C:\Music: https://api.vk.com/method/wall.get?domain=c.music&count=10&filter=owner&access_token=token
Что здесь что? domain - короткое имя сообщества. Если его нет, то меняем domain=xxx на owner_id=-yyy (обратите внимание на минус перед числом, это важно). count - число выводимых записей. Чем дольше пауза между проверками и чем чаще в сообществе появляются записи, тем большее число нужно выставить, но не более 100. filter=owner просит сервер выводить записи только от имени группы, полезно, если стена открыта, access_token - это токен пользователя, который «дёргает» API от имени одного из приложений. Давайте теперь создадим файл bot.py , в котором зададим основные константы и импорты:

# -*- coding: utf-8 -*- import time import eventlet import requests import logging import telebot from time import sleep # Каждый раз получаем по 10 последних записей со стены URL_VK = "https://api.vk.com/method/wall.get?domain=c.music&count=10&filter=owner&access_token=Ваш_токен_VK" FILENAME_VK = "last_known_id.txt" BASE_POST_URL = "https://vk.com/wall-39270586_" BOT_TOKEN = "токен бота, постящего в канал" CHANNEL_NAME = "@канал" bot = telebot.TeleBot(BOT_TOKEN)

Во-первых, не забудьте сделать нужного бота администратором канала, иначе фокус не удастся. Во-вторых, обратите внимание, что в импортах появилась библиотека eventlet , она поможет нам избежать проблем при получении записей из ВК. В-третьих, в указанный txt-файл будем записывать номер верхнего поста на момент проверки, я решил не заморачиваться с созданием key-value хранилищ, ради одного числа-то. В-четвёртых, в качестве параметра BASE_POST_URL указываем ссылку на любой пост из нашей группы без последнего числа.

Иногда ВК начинает дурить и не возвращает список постов за приемлемое время. В этом случае, нам нужно отвалиться по таймауту и пропустить проверку. Можно, конечно, попробовать ещё раз, но мы люди не настойчивые:)

def get_data () : timeout = eventlet.Timeout(10 ) try : feed = requests.get(URL_VK) return feed.json() except eventlet.timeout.Timeout: logging.warning("Got Timeout while retrieving VK JSON data. Cancelling..." ) return None finally : timeout.cancel()

Суть простая: получилось - возвращаем объект с постами. Не получилось - возвращаем None. Теперь перейдем непосредственно к парсингу. Алгоритм будет такой:

  1. Открываем файл, хранящий последний известный номер верхнего поста.
  2. Если метод get_data() вернул объект с записями, начинаем проходить по нему со второго элемента, т.к. первый - какое-то неизвестное мне рандомное число.
  3. Если номер поста меньше или равен последнему известному - завершаем обход.
  4. Проверяем наличие закрепленного поста. Если таковой есть, то передаем функции отправки сообщений все записи, кроме закрепленной. Иначе - просто передаем все.
  5. У каждой проверяемой записи забираем ID, подставляем рядом с BASE_POST_URL и получаем полный ID записи.
  6. Отправляем его в канал.
  7. Как только обход завершился, берем номер первой (второй, если первая - закрепленная) записи и записываем в файл поверх старого значения.
  8. Засыпаем или завершаемся.

По поводу п.8: дополнительно предусмотрим в нашей программе два режима: в первом режиме скрипт постоянно работает, засыпая после каждой итерации на 4 минуты; во втором режиме скрипт просто завершает работу, что позволяет ставить его в планировщик cron . В определении режима нам поможет константная переменная SINGLE_RUN, которую надо не забыть указать где-нибудь вверху.

def send_new_posts (items, last_id) : for item in items: if item["id" ] <= last_id: break link = "{!s}{!s}" .format(BASE_POST_URL, item["id" ]) bot.send_message(CHANNEL_NAME, link) # Спим секунду, чтобы избежать разного рода ошибок и ограничений (на всякий случай!) time.sleep(1 ) return def check_new_posts_vk () : # Пишем текущее время начала logging.info(" Started scanning for new posts" ) with open(FILENAME_VK, "rt" ) as file: last_id = int(file.read()) if last_id is None : logging.error("Could not read from storage. Skipped iteration." ) return logging.info("Last ID (VK) = {!s}" .format(last_id)) try : feed = get_data() # Если ранее случился таймаут, пропускаем итерацию. Если всё нормально - парсим посты. if feed is not None : entries = feed["response" ] try : # Если пост был закреплен, пропускаем его tmp = entries["is_pinned" ] # И запускаем отправку сообщений send_new_posts(entries, last_id) except KeyError: send_new_posts(entries, last_id) # Записываем новый last_id в файл. with open(FILENAME_VK, "wt" ) as file: try : tmp = entries["is_pinned" ] # Если первый пост - закрепленный, то сохраняем ID второго file.write(str(entries["id" ])) logging.info("New last_id (VK) is {!s}" .format((entries["id" ]))) except KeyError: file.write(str(entries["id" ])) logging.info("New last_id (VK) is {!s}" .format((entries["id" ]))) except Exception as ex: logging.error("Exception of type {!s} in check_new_post(): {!s}" .format(type(ex).__name__, str(ex))) pass logging.info(" Finished scanning" ) return

Осталось дело за малым - написать логику запуска всего процесса и инициализировать логгер, который будет писать в текстовый файлик обо всех событиях в жизни бота:

if __name__ == "__main__" : # Избавляемся от спама в логах от библиотеки requests logging.getLogger("requests" ).setLevel(logging.CRITICAL) # Настраиваем наш логгер logging.basicConfig(format="[%(asctime)s] %(filename)s:%(lineno)d %(levelname)s - %(message)s" , level=logging.INFO, filename="bot_log.log" , datefmt="%d.%m.%Y %H:%M:%S" ) if not SINGLE_RUN: while True : check_new_posts_vk() # Пауза в 4 минуты перед повторной проверкой logging.info(" Script went to sleep." ) time.sleep(60 * 4 ) else : check_new_posts_vk() logging.info(" Script exited.\n" )

Перед запуском бота, создадим вручную файл last_known_id.txt и впишем в него один из последних числовых ID, в моём случае это было чудесное число 1893. После включения бота, в зависимости от значения SINGLE_RUN, он будет либо постоянно работать, проверяя каждые 4 минуты на наличие новых постов, либо завершится после окончания первой проверки. Для себя я выбрал второй вариант, добавив скрипт в cron.

На сегодня всё, теперь вы можете легко и просто настроить автопостинг записей практически из любой группы ВК в свой канал.

На данном примере покажу как я настроил автопостинг в Телеграмм из моего блога (платформа blogger), но способы могут быть разные и подходит мой метод для сайта на любой платформе.

Недавно создал навал в телеграмм (подписывайтесь https://t.me/EconDudeBlog )

Ну и для интереса настроил туда автофид (автопостинг).

Один из вариантов как это будет:

Вариант не идеальный, просто способ оповестить людей что вы что-то написали. Примерно как push уведомления. Другой вариант - будет полноценный пост всего материала в телеграмм, но там может быть кривовато.

Очень кратко, какой вообще смысл делать автопостинг в Телеграмм? Сейчас все крупные блогеры (Носик, и т.д.), уже как год сливают аудиторию именно в телеграмм. Сливать аудиторию нужно туда, где все сидят. Сейчас сидят в ВК и вот как раз в Telegram. Следовательно люди не пропустят ваш новый пост если собрать аудиторию именно там. Однако. по хорошему надо писать под каждый пост отдельную статью и вообще кидать туда другой немного контент, но это требует затрат времени.

Технически суть будет вот в чём.

Если у вас есть RSS лента (а её нетрудно подключить), то она просто берёт все ваши статьи и просто их как-бы трансирует. Можно на неё подписаться например по emal.

Я использую старый добрый feedburner от гугла и как минимум он мне ускоряет индексацию новых статей. Так вот, сделайте себе RSS ленту, если еще не сделали.

Нам нужен бот, можно вот такого использовать: https://t.me/Manybot

Вот такое будет меню

Боты в Telegram оказались элементарными штуками, там всё понятно как делать.

Пишем ему /start

Потом /addbot

Вообще-то там снизу есть даже кнопки


Далее всё есть на скрине, продублирую на всякий случай:
  • Перейдите к @BotFather . Для этого нажмите на его имя, а потом "Send Message", если это потребуется.
  • Создайте нового бота у него. Для этого внутри @BotFather используйте команду "newbot" (сначала вам нужно будет придумать название, оно может быть на русском; потом нужно придумать вашу ссылку, она должна быть на английском и обязательно заканчиваться на "bot", например "NewsBot").
  • Скопируйте API токен, который вам выдаст @BotFather
  • Возвращайтесь обратно в @Manybot и пришлите скопированный API токен в ответ на это сообщение.

Вам нужен вот этот самый токен вот сюда. Мы создали нового бота. Мой вот такой:

  • http://telegram.me/econdude_bot

Выбираем ниже RSS, но как вы видите можно выбрать и ВК, а так-же Твиттер и ютуб