Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.
Закрыт 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
Сортировка: Сброс на вариант по умолчанию
Для начала вам нужно что-нибудь, на чём будет работать ваш бот. Возможные варианты:
- Ваш персональный компьютер. Для непрерывной работы бота вам нужно будет держать компьютер всё время включённым.
- Свой сервер, например на DigitalOcean.
- Какая-нибудь облачная платформа приложений, например Heroku.
Для простоты рассмотрим первый вариант. Рассмотрим случай пересылки сообщений из ВКонтакте в Телеграмм. Ваша программа должна будет периодически (скажем раз в семь секунд) посылать запросы на сервер ВКонтакте для определения появления новых сообщений. У ВКонтакте есть API. Запрос к API — это обычный HTTP запрос.
🟢Пересылка сообщений из Вконтакте в Telegram — VkMessagePro2
HTTP запросы можно посылать из большинства языков программирования, однако наиболее подходящим в нашем случае является язык Python. Приятным бонусом этого языка является наличие библиотек для более приятной работы с API ВКонтакте, например этой. Вот пример работы с этой библиотекой.
Далее, допустим ваша программа научилась получать сообщения из ВКонтакте. Следующим этапом является отправка сообщений в Телеграмм. У Телеграмма тоже есть API. И, конечно, для Python тоже есть библиотека для удобной работы. Например, в этой библиотеке есть метод send_message , который ваша программа будет вызывать, когда бот будет получить новое сообщение из ВКонтакте.
Далее, допустим ваш бот смог переслать сообщение из ВКонтакте в Телеграмм. Пользователь Телеграмм увидел это сообщение и ответил на него. Вашему боту нужно получить сообщение из Телеграмма. Можно сделать это немного более аккуратно и вместо проверки новых сообщений каждые семь секунд написать функцию, которая будет вызываться каждый раз, когда вашему боту пишут сообщение в Телеграмме. О том, чтобы эта функция вызывалась, позаботится упомянутая библиотека pyTelegramBotAPI .
Источник: ru.stackoverflow.com
Как переслать из телеграм картинку в вотсап,вайбер,ВК,почту и т.д.
Можно ли сделать пересылку сообщений из вк в телеграмм?
Все чаше вк меня разочаровывает и мобильное приложение стало рекламным.Всю музыку и контент я начал получать через другие сервисы. А в вк мне нужно быть в группе университета и беседе(скидывают объявления и важные новости)
Если возможность сделать автоматическую пересылку сообщений из беседы в телегу.
p.s кто-то скажет что я слабый и не могу контролировать свое время,возможно.
Просто хочется минимализировать необходимость трогать рекламные соц сети.
Спасибо за внимание!(на форуме новичок, за ошибки и плохое оформление, простите)
- Вопрос задан более трёх лет назад
- 9766 просмотров
2 комментария
Средний 2 комментария
можно, через Api обеих платформ
скачайте стороннее приложение без рекламы, например, kate mobile
Решения вопроса 0
Ответы на вопрос 2
Delphi Developer, сис. админ
Может тогда стоит использовать ВК только для чатов? Раз ты всё равно хочешь переписку пересылать?
Я вот почему-то не вижу проблем. Музыкой вк не пользуюсь, слушаю Я.Музыку, Я.Радио. Может всё таки перестать листать ленту? И никакой рекламы не будет.
Вопрос нормальный, а вот что за ним стоит — бред.
Пересылку сообщений можно сделать путём написания софта (возможно просто скрипта). Тебе будет необходимо немного изучить API ВК и Телеграмм. С телеграмм всё просто, создаешь бота, он тебе отправляет сообщения из чата, с ВК сложнее, тебе нужно получить доступ до чатов, отлавливать события и отправлять всё это боту.
Ответ написан более трёх лет назад
Нравится 2 2 комментария
Зря вы так! Тема действительно интересная. Я вот тоже хочу с этим разобраться и прежде всего это любопытно, второе, то что, я могу удалить все мессенджеры и оставить один, на который будут приходить сообщения со всех мессенджеров. И память конечно лишней не бывает. Это очень интересно. На сколько мне известно, подойдёт только телеграмм
Олег Андреев, ну тогда откапывайте QIP
По навыкам джун — по факту безработный
Возможно. У обеих платформ есть API.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- C#
- +2 ещё
Почему не отвечает бот Telegram?
- 1 подписчик
- час назад
- 15 просмотров
Источник: qna.habr.com
Пишем бота пересылки сообщений из VK в Telegram на Python
Очень часто бывает что у вас группа в 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