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

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.

Закрыт 5 лет назад .

Хочу создать бота, целью которого будет являться пересылка сообщений из социальных сетей и мессенджеров, таких как Вконтакте, Одноклассники, Facebook, Viber, WhatsApp и т.п. через бота, с возможностью ответа из Телеграмма. Что для этого нужно и осуществима ли эта идея вообще?

Отслеживать
5,920 3 3 золотых знака 22 22 серебряных знака 43 43 бронзовых знака
задан 1 июн 2017 в 8:57
23 1 1 серебряный знак 3 3 бронзовых знака
Ты вообще не разбираешься в этой теме?
1 июн 2017 в 18:04

Я себе такое сделал, из вк и slack сообщения идут в телеграм и я там отвечаю на них, в viber точно так не сделать, остальные не пробовал

16 июн 2017 в 9:30

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Для начала вам нужно что-нибудь, на чём будет работать ваш бот. Возможные варианты:

  1. Ваш персональный компьютер. Для непрерывной работы бота вам нужно будет держать компьютер всё время включённым.
  2. Свой сервер, например на DigitalOcean.
  3. Какая-нибудь облачная платформа приложений, например Heroku.

Для простоты рассмотрим первый вариант. Рассмотрим случай пересылки сообщений из ВКонтакте в Телеграмм. Ваша программа должна будет периодически (скажем раз в семь секунд) посылать запросы на сервер ВКонтакте для определения появления новых сообщений. У ВКонтакте есть API. Запрос к API — это обычный HTTP запрос.

🟢Пересылка сообщений из Вконтакте в Telegram — VkMessagePro2

HTTP запросы можно посылать из большинства языков программирования, однако наиболее подходящим в нашем случае является язык Python. Приятным бонусом этого языка является наличие библиотек для более приятной работы с API ВКонтакте, например этой. Вот пример работы с этой библиотекой.

Далее, допустим ваша программа научилась получать сообщения из ВКонтакте. Следующим этапом является отправка сообщений в Телеграмм. У Телеграмма тоже есть API. И, конечно, для Python тоже есть библиотека для удобной работы. Например, в этой библиотеке есть метод send_message , который ваша программа будет вызывать, когда бот будет получить новое сообщение из ВКонтакте.

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

Еще по теме:  Как удалить лайк в ВК со своей фотографии

Источник: ru.stackoverflow.com

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

Можно ли сделать пересылку сообщений из вк в телеграмм?

Все чаше вк меня разочаровывает и мобильное приложение стало рекламным.Всю музыку и контент я начал получать через другие сервисы. А в вк мне нужно быть в группе университета и беседе(скидывают объявления и важные новости)
Если возможность сделать автоматическую пересылку сообщений из беседы в телегу.
p.s кто-то скажет что я слабый и не могу контролировать свое время,возможно.
Просто хочется минимализировать необходимость трогать рекламные соц сети.
Спасибо за внимание!(на форуме новичок, за ошибки и плохое оформление, простите)

  • Вопрос задан более трёх лет назад
  • 9766 просмотров

2 комментария

Средний 2 комментария

ns174ru

можно, через Api обеих платформ
скачайте стороннее приложение без рекламы, например, kate mobile
Решения вопроса 0
Ответы на вопрос 2

HemulGM

Delphi Developer, сис. админ

Может тогда стоит использовать ВК только для чатов? Раз ты всё равно хочешь переписку пересылать?
Я вот почему-то не вижу проблем. Музыкой вк не пользуюсь, слушаю Я.Музыку, Я.Радио. Может всё таки перестать листать ленту? И никакой рекламы не будет.

Вопрос нормальный, а вот что за ним стоит — бред.

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

Ответ написан более трёх лет назад
Нравится 2 2 комментария

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

Еще по теме:  Самые страшные фильмы ужасов Вконтакте

HemulGM

Олег Андреев, ну тогда откапывайте QIP
По навыкам джун — по факту безработный
Возможно. У обеих платформ есть API.
Ответ написан более трёх лет назад
Комментировать

Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

c#

  • C#
  • +2 ещё

Почему не отвечает бот Telegram?

  • 1 подписчик
  • час назад
  • 15 просмотров

Источник: qna.habr.com

Пишем бота пересылки сообщений из VK в Telegram на Python

aaf44db7572a2fcafef3ae5ea5c20bb2.png

Очень часто бывает что у вас группа в vk.com и вам бы хотелось завести канал в телеграмм но постить вручную сообщения в два источника не очень удобно. Ниже мы рассмотрим бота для пересылки сообщений из вконтакте в телеграм.

Регистрируем бота в Telegram

Отправляем ему команду:

/newbot

Придумываем имя боту

Alright, a new bot. How are we going to call it? Please choose a name for your bot.


Придумываем username, должно заканчиваться обязательно на ‘bot’

Good. Now let’s choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.

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

Use this token to access the HTTP API:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Пишем бота Telegram

Создаем в нашем проекте файл settings.ini и добавляем в него настройки подключения нашего будущего бота пересылки сообщений из vk.

где:
last_id — последний ID сообщения ленты вконтакте, можно оставить 123
include_link — вставлять ли ссылки
preview_link — использовать ли предпросмотр ссылок

login — ваш логин аккаунта вконтакте
password — ваш пароль аккаунта вконтакте
domain — группа или id сообщества вконтакте
count — количество последних забираемых сообщений сообщество (ограничение API вконтакте, максимум 100 за один запрос)

bot_token — токен бота полученный выше
channel — название канала в телеграмме для публикации ботом, важно помнить что для публикации сообщений в канале ботом, его нужно добавить администратором канала

Нам понадобятся библиотеки:

configparser и logging из стандартной библиотеки Python, и конечно сам Python, на момент написания статьи у меня была версия 3.6.2

Устанавливаем библиотеки через pip желательно в virtualenv, в консоли набираем:

pip install vk_api pip install pyTelegramBotAPI

Создаем файл vk_to_tg.py и начинаем в него писать.

Еще по теме:  Сколько можно заработать на группе в ВК

import os import sys import vk_api import telebot import configparser import logging from telebot.types import InputMediaPhoto

Считываем данные из settings.ini
config_path = os.path.join(sys.path[0], ‘settings.ini’) config = configparser.ConfigParser() config.read(config_path) LOGIN = config.get(‘VK’, ‘LOGIN’) PASSWORD = config.get(‘VK’, ‘PASSWORD’) DOMAIN = config.get(‘VK’, ‘DOMAIN’) COUNT = config.get(‘VK’, ‘COUNT’) BOT_TOKEN = config.get(‘Telegram’, ‘BOT_TOKEN’) CHANNEL = config.get(‘Telegram’, ‘CHANNEL’) INCLUDE_LINK = config.getboolean(‘Settings’, ‘INCLUDE_LINK’) PREVIEW_LINK = config.getboolean(‘Settings’, ‘PREVIEW_LINK’)

Инициализируем телеграмм бота vk телеграмм бота
bot = telebot.TeleBot(BOT_TOKEN)

Получаем данные из vk.com для последующей обработки
# Получаем данные из vk.com def get_data(domain_vk, count_vk): vk_session = vk_api.VkApi(LOGIN, PASSWORD) vk_session.auth() vk = vk_session.get_api() # Используем метод wall.get из документации по API vk.com response = vk.wall.get(domain=domain_vk, count=count_vk) return response

Проверяем и извлекаем данные по условиям перед отправкой
# Проверяем данные по условиям перед отправкой def check_posts_vk(): response = get_data(DOMAIN, COUNT) response = reversed(response[‘items’]) for post in response: # Читаем последний извесный id из файла ‘LAST_ID’) # Сравниваем id, пропускаем уже опубликованные if int(post[‘id’]) 0: image_urls = list(map(lambda img: max( img[«sizes»], key=lambda size: size[«type»])[«url»], images)) print(image_urls) bot.send_media_group(CHANNEL, map( lambda url: InputMediaPhoto(url), image_urls)) # Проверяем есть ли репост другой записи if ‘copy_history’ in post: copy_history = post[‘copy_history’] copy_history = copy_history[0] print(‘—copy_history—‘) print(copy_history) text = copy_history[‘text’] send_posts_text(text) # Проверяем есть ли у репоста прикрепленное сообщение if ‘attachments’ in copy_history: copy_add = copy_history[‘attachments’] copy_add = copy_add[0] # Если это ссылка if copy_add[‘type’] == ‘link’: link = copy_add[‘link’] text = link[‘title’] send_posts_text(text) img = link[‘photo’] send_posts_img(img) url = link[‘url’] send_posts_text(url) # Если это картинки if copy_add[‘type’] == ‘photo’: attach = copy_history[‘attachments’] for img in attach: image = img[‘photo’] send_posts_img(image) # Записываем id в файл config.set(‘Settings’, ‘LAST_ID’, str(post[‘id’])) with open(config_path, «w») as config_file: config.write(config_file)

Отправляем посты в телеграмм

# Текст def send_posts_text(text): if text == »: print(‘no text’) else: # В телеграмме есть ограничения на длину одного сообщения в 4091 символ, разбиваем длинные сообщения на части for msg in split(text): bot.send_message(CHANNEL, msg, disable_web_page_preview=not PREVIEW_LINK)

Если сообщение длинное то разбиваем его на несколько:
def split(text): if len(text) >= max_message_length: last_index = max( map(lambda separator: text.rfind(separator, 0, max_message_length), message_breakers)) good_part = text[:last_index] bad_part = text[last_index + 1:] return [good_part] + split(bad_part) else: return [text]

Если это изображение:

# Изображения def send_posts_img(img): # Находим картинку с максимальным качеством url = max(img[«sizes»], key=lambda size: size[«type»])[«url»] bot.send_photo(CHANNEL, url)

И в самом конце инициализируем наш скрипт:
if __name__ == ‘__main__’: check_posts_vk()

Репозиторий бота на github.com

Все, удачного Вам написания собственных Telegram ботов на Python

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

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