Как создать бота, который будет перепостить контент из Telegram во ВКонтакте?

Привет! Я ищу функциональный скрипт для автоматического репоста из Telegram в VK. Имея полный доступ и все необходимые токены к обоим пабликам, я перепробовал множество вариантов и не нашел работающий. В настоящее время, я пытаюсь модифицировать этот скрипт с Github: он больше не вызывает крашей или ошибок, контейнер успешно запускается в Docker и логи выглядят нормально в Git Bush. Тем не менее, бот в Telegram не отвечает на команду /start. Может кто-то из вас имеет опыт работы с этим скриптом или может посоветовать аналогичный скрипт?
  • 2 декабря 2023 г. 19:19
Ответы на вопрос 1
В вашем случае есть несколько вариантов:

1. Использовать готовый сервис для кросс-постинга, например dlvr.it или IFTTT. Они просты в использовании и не требуют знания программирования. Однако, подобные сервисы могут быть ограничены в функционалах и не подойти, если у вас есть специфические требования.

2. Написать свой скрипт на каком-нибудь языке программирования. Например, на Python. Вы можете использовать библиотеки python-telegram-bot для получения сообщений из Telegram и vk_api для отправки сообщений в VK.

Скрипт мог бы выглядеть так:

```python
import logging
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
import vk_api

# Настройка логирования
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    level=logging.INFO)
logger = logging.getLogger(__name__)

# Ваши данные для авторизации в VK
vk_login = 'your_vk_login'
vk_password = 'your_vk_password'
vk_app_id = 'your_vk_app_id'

# Ваши данные для авторизации в Telegram
token = 'telegram_token'
chat_id = 'telegram_chat_id'

# Авторизация в VK
vk_session = vk_api.VkApi(login=vk_login, password=vk_password, app_id=vk_app_id)
vk_session.auth()

vk = vk_session.get_api()

# Колбэк для обработки сообщений в Telegram
def echo(update: Update, context: CallbackContext) -> None:
    message_text = update.message.text

    # Постим в VK
    vk.wall.post(message=message_text)

def main() -> None:
    # Создаем апдейтер и передаем токен для работы с Телеграм API
    updater = Updater(token, use_context=True)

    dp = updater.dispatcher

    dp.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))

    # Запускаем цикл получения обновлений
    updater.start_polling()

    # Останавливаем апдейтер при остановке скрипта
    updater.idle()

if __name__ == '__main__':
    main()
```
Важно помнить, что авторизационные данные VK (логин, пароль) и данные для доступа к Telegram API должны храниться в безопасном месте и не передаваться третьим лицам.

Также, учтите что скрипт не учитывает никакие вложения в сообщениях и не предусматривает обработку ошибок. Это лишь основа, которую вам придется доработать под ваши требования.
Похожие вопросы