Как связать телеграмм с Вконтакте

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

Возможности:

  • Пересылка текстовых сообщений из ВК в Telegram и наоборот
  • Пересылка изображений/стикеров/аудио/видео/документов/голосовых сообщений (Только из ВК в Telegram!)
  • Пересылка стикеров из Telegram в ВК
  • Поддержка личных сообщений и групповых чатов
  • Удобный файл конфигурации
  • Поддержка прокси для Telegram

Установка

Для работы вам понадобиться:

  • Python 3
  • Git клиент ( я использую Git Bash )
  • Аккаунт в ВК ( будем использовать в качестве ботинка )
  • Бот в Telegram ( можно создать через BotFather )
  • (При желании) Хостинг, на котором будет работать бот (Например, PythonAnywhere)

Для начала займёмся установкой скрипта. Открываем Git и пишем:

Как использовать стикеры Telegram в VK?


git clone https://github.com/Whiletruedoend/Vk-to-telegram-transfer-bot cd Vk-to-telegram-transfer-bot pip3 install -r requirements.txt или же (если вдруг не сработало): python -m pip install -r requirements.txt

Запуск в docker

Для запуска в docker’е необходимо собрать образ и запустить его. Для сборки образа необходимо в корневой директории проекта выполнить команду

docker build . -t vk_to_telegram_transfer_bot

Для запуска образа необходимо в корневой директории проекта выполнить команду

docker run vk_to_telegram_transfer_bot

Запуск при помощи docker-compose

Для запуска в docker’е необходимо собрать образ и запустить его. Для сборки образа необходимо в корневой директории проекта выполнить команду

docker-compose up -d

Настройка бота

Все настройки будут производиться в файле config.py Для начала откроем его и вставим логин и пароль от аккаунта в ВК (таблицы ‘vk_login’ и ‘vk_password’ ) и токен бота в Telegram’e ( таблица ‘telegram_token’ )

Далее мы будем настраивать чат для передачи сообщений. Для этого необходимо:

  1. Создать чат в Telegram’e
  2. Добавить туда бота
  3. Написать ‘Дай ID’, после чего бот должен написать вам ID чата
  4. Взять ID чата/пользователя, откуда/куда будут пересылаться сообщения
  5. Добавить в конфиг поля:

setCell( «vk_», ‘-‘ ) setCell( «t_-«, » )

, где — локальный ID чата для бота (!), либо ID пользователя, с которым будет связан чат в Telegram’e, а — — тот самый ID чата, который мы получили, прописав команду ‘Дай ID’. Отбратите внимание, что — всегда идёт с минусом в начале, кроме того, знаки <> прописывать не нужно! ‘Живой пример’:

setCell( «vk_1», ‘-249416176’ ) setCell( «t_-249416176», ‘1’ )

Здесь мы видим, что для аккаунта ВК из чата 1 все сообщения будут пересылаться в чат ‘-249416176’ в Telegram, и наоборот. Надеюсь, всё понятно, по какому принципу нужно всё делать. P.S. Я дальнейшем я планирую облегчить систему создания тоннелей ВК телега, но, пока что, пусть всё останется так.

Важно!

У бота в Telegram должен быть:

  1. Отключен режим приватности ( Bot Father —> Ваш бот —> Bot Settings —> Group Privacy —> Turn Off )
  2. Включена поддержка групповых чатов ( Bot Father —> Ваш бот —> Bot Settings —> Allow groups? Turn groups On )

Планы на будущее

  • Доработать отправку картинок ( Сейчас устроено так, что если отправлено несколько фоточек в ВК, то в телегу придёт только первая) Done!
  • Улучшить отображение пересланных сообщений ( сейчас это еле работает, спасибо хоть на этом) Done!
  • Сделать реагирование на различные события (Ex. при обновлении аватарки чата в ВК, инвайте/кике пользователя, бот оповещал об этом в Telegram ) Done!
  • При отправке стикера из Telegram в ВК он конвертировался из формата webp в png и отправлялся как картинка ( Я уже знаю как это можно сделать, но не могу найти годный конвертер ) Done!
  • Переписать проект с нуля
  • Настроить передачу картинок/видео/файлов/документов из Telegram в ВК
  • Более удобная конфигурация прямо в боте
  • Синхронизация чатов (Название, аватарка)
Еще по теме:  Умная колонка капсула мини с марусей vk обзор

Обратная связь

Если у вас есть какие-то идеи или собственные наработки, или же просто вопросы по поводу работоспособности кода, то вы всегда можете обратиться ко мне по следующим адресам:

Скриншоты

Скриншот 2

Open Source Agenda is not affiliated with «Vk To Telegram Transfer Bot» Project. README Source: Whiletruedoend/Vk-to-telegram-transfer-bot

Источник: www.opensourceagenda.com

Как создать бот Вконтакте и Telegram что бы они работали вместе

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

1. Настройка сервера

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

Покупаем сервер если нет — Я рекомендую FirstVds нам подойдет самый дешевый тариф, на данный момент это тариф Прогрев за 199р Или вы можете подыскать сервер с похожей конфигурацией.

Далее настраиваем сам сервер, для Telegram требуется SSL сертификат, иначе мы не сможем установить webhook (Обработчик), подробнее об этом есть в нашей статье [PHP] Создание простого Telegram-бота на простой библиотеке. Что бы все заработало вам понадобится домен. Купить его можно на REG.ru или любом другом агрегаторе доменных имен, стоимость домена на 1 год составляет от 100р в зависимости от выбранной вами зоны, ru, su, com, org и т. д.

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

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

Туда мы и будем загружать все наши файлы

2. Скачивание библиотек

Для работы нам понадобится 2 библиотеки, бот будет максимально простым, но если статья будет вам интересна и вам захочется дальнейшее развитие темы с подключением базы данных и расширение функционала, то пишите об этом в комментариях!

Библиотека для работы с ВК:

Библиотека для работы с Telegram

Скачиваем архивы и загружаем в ранее созданную папку bot на этом этапе мы закончили и приступаем к настройке наших будущих ботов

3. Настройка бота в VK и Telegram

Для начала настроим наш бот Вконтакте. Для этого выбираем будущее сообщество под нашего бота и переходим в раздел настройки — Работа с API и создаем токен:

Копируем наш ключ доступа и сохраняем куда-нибудь, он нам пригодится в дальнейшем. Далее на этой же вкладки открываем Calback API и настраиваем

Тут нам нужно указать путь до файла с ботом, его предварительно нужно создать в корне папки bot с названием bot.php и добавить туда следующий код:

echo ‘320105f2’; — это строка которую нужно вернуть на запрос от вк,

Строка, которую должен вернуть сервер: 320105f2

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

Еще по теме:  Vk это что за машина

Значит мы все сделали правильно и теперь настраиваем бот в Telegram

Для этого нужно написать https://t.me/BotFather команду /newbot и следовать дальнейшим инструкциям, вот как это сделал я:

Здесь мы копируем токен который указан после Use this token to access the HTTP API: на него достаточно просто нажать один раз и он скопируется

Теперь в бразуере вставляем ссылку следующего вида (Заменив ВАШДОМЕН на свой) и заменить на свой

https://api.telegram.org/bot/setWebhook?url=https://ВАШДОМЕН/bot/bot.php

В бразуере должно отобразиться это:

Значит мы все сделали правильно. Теперь начинаем писать код.

4. Основной код бота

Подключаем наши библиотеки в код,

require_once ‘telelibonphp-master/tgLib.php’; //Подключаем библиотеку TG require_once «simplevk-master/autoload.php»; //Подключаем библиотеку VK

Далее нам нужно сделать проверку откуда именно приходит событие и как нам его обрабатывать:

$data = json_decode(file_get_contents(‘php://input’),true); $group_id = $data[‘group_id’] ?? null; if ($group_id !== null) < $vk = vk_api::create(‘Ваш апи ключ из ВК’, ‘5.131’)->setConfirm(‘320105f2’); $vk->initVars($peer_id, $message, $payload, $user_id, $type, $data); // Инициализация переменных > else

Здесь мы проверяем с помощью GROUP_ID откуда приходит событие, так как в Telegram нет такого поля, то соответственно оно будет пустым

Далее нам остается добавить несколько команд и классический ответ если ни одна из команд не будет указана:

$command = explode(‘ ‘, mb_strtolower($message)); // Обработка команд if ($command[0] == ‘время’) < $date = date(‘d.m.y H:i:s’); $vk->sendMessage($peer_id, «Серверное время: $date»); exit; > if ($command[0] == ‘инфо’) < $vk->sendMessage($peer_id, «Я бот и я умею работать в ВК и Телеграмм»); exit; > // Класичиский ответ $vk->sendMessage($peer_id, «Приветик :)»);

Итоговый код получается следующий:

setConfirm(‘320105f2’); $vk->initVars($peer_id, $message, $payload, $user_id, $type, $data); // Инициализация переменных > else < $vk = new tgBot(‘ВАШ ТОКЕН из telegram’); $message = $data[‘callback_query’][‘message’][‘text’] ?? $data[‘message’][‘text’] ?? null; $peer_id = $data[‘callback_query’][‘message’][‘chat’][‘id’] ?? $data[‘message’][‘chat’][‘id’] ?? null; $user_id = $data[‘callback_query’][‘message’][‘from’][‘id’] ?? $data[‘message’][‘from’][‘id’] ?? null; >$command = explode(‘ ‘, mb_strtolower($message)); // Обработка команд if ($command[0] == ‘время’) < $date = date(‘d.m.y H:i:s’); $vk->sendMessage($peer_id, «Серверное время: $date»); exit; > if ($command[0] == ‘инфо’) < $vk->sendMessage($peer_id, «Я бот и я умею работать в ВК и Телеграмм»); exit; > // Класичиский ответ $vk->sendMessage($peer_id, «Приветик :)»);

Теперь давайте проверим наших ботов в деле (Слева Telegram, справа Вконтакте):

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

if ($command[0] == ‘кнопка’) < if ($platform == ‘vk’)< // Если событие из вк // Кнопка ВК $started = $vk->buttonText(‘Нажми меня’, ‘green’, [‘command’ => ‘play’]); $kbd = [[$started]]; > else < // Иначе вставляем кнопку для телеги // Кнопка TG $kbd = [ ‘inline_keyboard’ =>[ [[‘text’ => ‘Нажми меня’, ‘callback_data’ => ‘play’]] ] ]; > $vk->sendButton($peer_id, «Держи кнопку, но знай, она отличается от выбраного месенджера», $kbd); exit; >

У нас появились новые переменные, их так же нужно добавить в код выше, вот так:

setConfirm(‘320105f2’); $vk->initVars($peer_id, $message, $payload, $user_id, $type, $data); // Инициализация переменных $payload = $payload[‘command’]; $platform = ‘vk’; > else

Весь код нашего бота:

setConfirm(‘320105f2’); $vk->initVars($peer_id, $message, $payload, $user_id, $type, $data); // Инициализация переменных $payload = $payload[‘command’]; $platform = ‘vk’; > else < $vk = new tgBot(‘ВАШ ТОКЕН из telegram’); $message = $data[‘callback_query’][‘message’][‘text’] ?? $data[‘message’][‘text’] ?? null; $peer_id = $data[‘callback_query’][‘message’][‘chat’][‘id’] ?? $data[‘message’][‘chat’][‘id’] ?? null; $user_id = $data[‘callback_query’][‘message’][‘from’][‘id’] ?? $data[‘message’][‘from’][‘id’] ?? null; $payload = $data[‘callback_query’][‘data’]; $platform = ‘tg’; >$command = explode(‘ ‘, mb_strtolower($message)); // Обработка команд if ($command[0] == ‘время’) < $date = date(‘d.m.y H:i:s’); $vk->sendMessage($peer_id, «Серверное время: $date»); exit; > if ($command[0] == ‘инфо’) < $vk->sendMessage($peer_id, «Я бот и я умею работать в ВК и Телеграмм»); exit; > if ($command[0] == ‘кнопка’) < if ($platform == ‘vk’)< // Если событие из вк // Кнопка ВК $started = $vk->buttonText(‘Нажми меня’, ‘green’, [‘command’ => ‘play’]); $kbd = [[$started]]; > else < // Иначе вставляем кнопку для телеги // Кнопка TG $kbd = [ ‘inline_keyboard’ =>[ [[‘text’ => ‘Нажми меня’, ‘callback_data’ => ‘play’]] ] ]; > $vk->sendButton($peer_id, «Держи кнопку, но знай, она отличается от выбраного месенджера», $kbd); exit; > // Класичиский ответ $vk->sendMessage($peer_id, «Приветик :)»);

Еще по теме:  Проверить рейтинг группу ВК

И вот так это выглядит:

Для обработки нажатия кнопок достаточно добавить следующее:

if ($payload == ‘play’)< $vk->sendMessage($peer_id, «Ты нажал кнопку и я выполяю на это какое-то событие. «); exit; >

Архив с исходником и всеми библиотеками:

5. Заключение

Подведем итоги. Можно сделать выводы что написать бот для ВК и одновременно для Телеграмм не такая сложная задача как может показаться на первый взгляд. Пробуйте и творите своих ботов, ведь это своего рода искусство, где каждый создает что-то интересное.

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

  • Сергей Котов
  • 05.04.2023
  • 525
  • 0
  • 24

Источник: kotoff.net

Как перенести ВК в Телеграм?

Чтобы перенести данные, пользователю нужно открыть мессенджер, выбрать необходимую переписку и создать ее архив. Отправить чат в Telegram можно через функцию «Поделиться». Кроме того, последнее обновление Telegram для iOS дает возможность пользователям удалять созданные ими группы, секретные чаты и историю звонков.

Как в телеграмм отправить песню?

  1. Откройте чат с вашим приятелем.
  2. Нажмите на скрепку в правом углу набора сообщения.
  3. Выберите «Музыка».
  4. Отыщите необходимый файл ( все треки будут автоматически обнаружены).

Как прикрепить музыку в телеграмм?

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

Какие бывают боты в ВК?

  • Lucky Bot. Lucky Bot поможет искать розыгрыши призов «ВКонтакте» по городам и категориям. .
  • Бот Повар С помощью этого бота всегда можно найти интересный рецепт. .
  • Фильмы | Бот .
  • Бот Джинни | Акинатор .
  • FaceApp — Бот .
  • Переводчик .
  • Погода .
  • AudD S.

Как связать Инстаграм и Телеграм?

  1. Зарегистрируйтесь в сервисе Onemorepost, подтвердите свой email и авторизуйтесь.
  2. Прикрепите аккаунт Instagram на странице «Аккаунты» .
  3. Затем выберите из списка социальных сетей «Telegram».

Как получать сообщения из ВК в телеграмм?

Как перенести данные с WhatsApp на telegram?

Как перенести чат (на примере WhatsApp): Откройте WhatsApp, найдите нужный чат, свайпните его влево, нажмите на меню «Ещё» и выберите опцию «Экспорт чата». Появится всплывающее окно для переноса данных, где есть в том числе Telegram — нажмите на значок этого мессенджера.

Как отметить все сообщения в телеграмме?

Если вы хотите выделить сразу несколько сообщений для пересылки или удаления, то просто проведите по ним двумя пальцами одновременно сверху-вниз или снизу-вверх. Просто и понятно!

Как перенести чаты телеграмм с андроида на айфон?

Для этого нужно открыть любой другой мессенджер и создать архив необходимого чата. После этого откроется стандартное iOS-меню «Поделиться». Нужно выбрать Telegram, и чат автоматически переносится в этот мессенджер.

Как добавлять музыку в телеграмм с айфона?

  1. заходим в проигрыватель на телефоне;
  2. нажимаем на необходимый трек;
  3. выбираем «Экспортировать файл»;
  4. нажимаем на Telegram;

Как слушать песни в телеграмме?

Как найти песни в телеграмм?

  1. Загружаете в чат или канал несколько треков, которые вы сможете объединить по группе, стилю или настроению;
  2. После этого прописываете один или несколько тематических хештегов, например #chillout #neoclassica #легкая
  3. Готово!

Источник: shnurovik.ru

Рейтинг
( Пока оценок нет )
Загрузка ...