Ответы пользователя по тегу Telegram
  • Успешные стартап-кейсы Telegram ботов?

    @OlegPyatakov
    pyatakov.com
    Задавая подобным вопросом еще в 2018 году.

    Если коротко, то боты популярны, но они вряд ли подходят как основной драйвер стартапа, который целится в деньги. Особенно это усиливается, если сужать до конкретно telegram-ботов. Как дополнительный канал, да - telegram боты, вероятно, позволяют охватить какую-то дополнительную аудиторию, которая не охватывается другими каналами.

    Кажется, что индустрия чат-ботов все больше двинулась в мобильные приложения, которые позволяют реализовать все фишки, которые напридумывают маркетологи, и не связана ограничениями конкретной платформы.
    Ответ написан
    Комментировать
  • Почему не работает proxi?

    @OlegPyatakov
    pyatakov.com
    Сейчас, чтобы законнектить Телеграм бота через прокси, нужно выполнить два условия:

    • Используемый Socks прокси должен поддерживать SSL. Далеко не каждый прокси в интернете его поддерживает - нужно проверять. Указанный в вашем конфиге - не поддерживает или делает это как-то необычно.
    • Боту нужно передавать дополнительно параметры для библиотеки коннекта, чтобы та игнорировала ошибки сертификатов. В вашем случае, нужны параметры для Urllib3.


    Попробуйте вот так. Я только что проверил - мой бот с таким конфигом нормально коннектится и посылает сообщение с картинкой.

    REQUEST_KWARGS={
        'proxy_url': 'socks4://171.103.9.22:4145/',
        # Optional, if you need authentication:
        'urllib3_proxy_kwargs': {
            'assert_hostname': 'False',
            'cert_reqs': 'CERT_NONE'
            # 'username': 'user',
            # 'password': 'password'
        }
    }
    Ответ написан
    Комментировать
  • Heroku как хостинг для бота. Как влияет ограничение в 30 минут?

    @OlegPyatakov
    pyatakov.com
    Общая теория:
    Если бот на Heroku уходит в сон, то он не теряет своего внутреннего состояния. Когда к спящему боту впервые обратятся по web, то он ответит, как обычно, но с задержкой, на то, чтобы проснуться из сна. В интернете пишут, что выход из сна занимает пару секунд. Я сам не проверял тайминги.

    Практика:
    Бесплатный тариф на Heroku можно успешно использовать для бота Телеграм, но нужно приспособиться:
    • Делать long polling на Heroku с использованием worker gyno. В документации написано, что worker dyno не уходят в сон.
    • Делать бота на webhooks. В этом случае бот при бездействии будет ходить в сон, но следующий запрос выведет его из сна. Не проверял тайминги, но предположу, что Telegram не будет обрывать совединение из-за задержки ответа в пару секунд. Да, для внешнего пользователя это запрос потребует несколько секунд на обработку из-за выхода из сна.
    • Делать бота как обычно, но по web cron каждые 25 минут посылать web запросы на какой нибудь end point бота, чтобы тот не спал.
    Ответ написан
    1 комментарий
  • Как заставить python-telegram-bot работать с прокси?

    @OlegPyatakov
    pyatakov.com
    Сейчас, чтобы законнектить Телеграм бота через прокси, нужно выполнить два условия:

    • Используемый Socks прокси должен поддерживать SSL. Далеко не каждый прокси в интернете его поддерживает - нужно проверять. Указанный в вашем конфиге - не поддерживает или делает это как-то необычно.
    • Боту нужно передавать дополнительно параметры для библиотеки коннекта, чтобы та игнорировала ошибки сертификатов. В вашем случае, нужны параметры для Urllib3.


    Попробуйте вот так. Я только что проверил - мой бот с таким конфигом нормально коннектится и посылает сообщение с картинкой.

    REQUEST_KWARGS={
        'proxy_url': 'socks4://171.103.9.22:4145/',
        # Optional, if you need authentication:
        'urllib3_proxy_kwargs': {
            'assert_hostname': 'False',
            'cert_reqs': 'CERT_NONE'
            # 'username': 'user',
            # 'password': 'password'
        }
    }
    Ответ написан
    3 комментария
  • Возможно ли перенести бот с бесплатной платформы на свою?

    @OlegPyatakov
    pyatakov.com
    Почти всегда перенести бота в формате "экспорт-импорт" нельзя.
    Понадобится написать с нуля бота, который будет выполнять функционал бота из конструктора.

    Посмотрел на ManyBot:
    • Хорошо, что они используют ваш токен, то есть вы сможете заменить платформу, не меняя имени бота.
    • Не увидел, есть ли у них экспорт базы пользователей или какая-то другая возможность ее собрать. Если нет, то не сможете узнать, кто был подписан на бота до переноса.
    Ответ написан
    1 комментарий
  • Где хостить телеграм бота?

    @OlegPyatakov
    pyatakov.com
    Стандартный набор: Heroku, AWS (1 год бесплатно), Bluemix, GAE, Pytho...

    В части хранения картинок:
    • AWS подходит тем, что можно хранить картинки прямо в виртуалке. Заливать на виртуалку - или через бота, или через FTP.
    • В остальных случаях, когда PaaS, можно хранить картинке в виде бинарников в БД. Если сервис не предоставляет БД или ее размер мал, то можно использовать mLab или MongoDB Atlas. Там бесплатный размер 512 МБ на БД.
    • Если нужно ну очень много (гигабайты) картинок хранить, то можно хранить на обычном бесплатном хостинге статики, брать из облачных хранилищ (Яндекс, Dropbox) или вообще организовать забор из какой-нибудь почты.
    Ответ написан
    1 комментарий
  • Каковы общие принципы работы чат-бота Telegram?

    @OlegPyatakov
    pyatakov.com
    Концептуально, чат-бот - это аккаунт (как еще один "человеческий" контакт).
    • Можно писать ему напрямую и тогда будет тет-а-тет чат. Именно этот сценарий реализуется, в случае когда надо начать общение с ботом через команду "/start"
    • Можно добавить чат-бота в группу или канал, и тогда чат-бот сможет видеть сообщения в этой группе или канале, которые видят остальные участники группы или канала.
    Ответ написан
    2 комментария
  • Pythonanywhere не подключается к прокси, что делать?

    @OlegPyatakov
    pyatakov.com
    Бесплатные аккаунты на Pythonanywhere могут делать исходящие соединения только по сайтам из белого списка:
    https://www.pythonanywhere.com/whitelist/.

    Если нужно делать исходящие коннекты, то стоит или перейти на платный аккаунт или посмотреть на альтернативы.
    Ответ написан
    Комментировать
  • Bot телеграмм при запуске выдает ошибку, как исправить?

    @OlegPyatakov
    pyatakov.com
    Уверен, что проблема в блокировках Telegram на территории РФ.

    Возможные решения:
    • Использовать VPN
    • Использовать Прокси (нужен socks с SSL, возможно, придется отключить проверку сертификата)
    • Хостить бота на зарубежном облаке
    Ответ написан
  • Во время использования бота не срабатывает с первого раза команда старт, как исправить?

    @OlegPyatakov
    pyatakov.com
    Это может быть связано с ошибками в коде бота.
    Ответ написан
    Комментировать
  • Возможно ли совместить канал с ботом и постами?

    @OlegPyatakov
    pyatakov.com
    В каналах и группах Telegram все подписчики видят содержимое канала одинаково (кроме одного исключения).

    Альтернатива - делать все через диалог бота.
    Ответ написан
  • Ошибка сертификата при запросе информации о боте телеграмма, что делать?

    @OlegPyatakov
    pyatakov.com
    Проблема в том, что SSL сертификат сервера или прокси не проходит проверку библиотеки, которая отвечает за сетевое подключение, так как сертификат - самоподписанный.

    Самое простое решение (хотя и не оптимальное) - отключить проверку сертификата. Как это сделать в конкретно вашей библиотеке для Telegram, надо искать в документации.
    Ответ написан
    Комментировать
  • Как создать телеграмм бот для только клиента?

    @OlegPyatakov
    pyatakov.com
    В Telegram нельзя запретить пользователям писать боту. Можно в программной логике бота сделать проверку на то, с какого аккаунта к нему обращаются, и отвечать только по белому списку.
    Ответ написан
    Комментировать
  • Как читать посты Livejournal в Телеграме?

    @OlegPyatakov
    pyatakov.com
    Сейчас проверил: если приходит ссылка на пост в ЖЖ, то сразу к ней подцепляется Instant View. Клиент Telegram на iOS.
    Ответ написан
  • Как создать бота для поиска и вывода сообщений из каналов по запросу?

    @OlegPyatakov
    pyatakov.com
    Опыта нет, но могу сказать, что для задачи поиска сообщений придется использовать не Bot API, а делать что-то на основе какой-нибудь клиентской библиотеки для Telegram.
    Ответ написан
    Комментировать
  • Можно ли перенесли чат бота с одного конструктора в другой с сохранением подписчиков?

    @OlegPyatakov
    pyatakov.com
    Расскажу про Telegram (если что-то неточно, надеюсь меня поправят):

    "Подписчик" бота - это пользователь, который разрешил боту себе писать (через команду "/start").

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

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

    UPD: Это все было описано для случая, когда аккаунт бота остается тем же самым, но меняются сервера/конструктор. Если же меняется аккаунт бота в Telegram, то там даже выгрузка списка подписчиков не поможет. В Telegram бот не может написать человеку, который не подписался на этого бота. Единственный способ конвертировать подписчиков - через старый аккаунт/конструктор (или с аккаунта какого-то человека, но это уже будет спам) просить пользователей перейти на новый аккаунт бота.
    Ответ написан
    1 комментарий
  • Как сделать шрифт жирным?

    @OlegPyatakov
    pyatakov.com
    Выделить ** (двумя звездочками) с каждой стороны:
    **TEST**
    Ответ написан
    1 комментарий
  • Как ограничить кол-во запросов в секунду в Telegram боте?

    @OlegPyatakov
    pyatakov.com
    Варианты:
    • Реализовать что-то вроде mutex для функции начисления бонуса
    • Сделать однопоточную очередь или воспользоваться внешней
    • Сделать задержку в начислениях: по нажатию кнопки делается заявка на начисление, а бонус начисляется потом всем скопом, кто нажимал кнопку
    Ответ написан
    Комментировать
  • Обязателен ли сервер для работы чат бота в Телеграме?

    @OlegPyatakov
    pyatakov.com
    Чтобы бот мог отвечать и нести пользователям какую-либо полезную функциональность в любом случае понадобится запустить какую-нибудь программу, которая будет генерировать ответы и реализовывать этот самый полезный функционал.
    В зависимости от того, какой бот планируется, и требований к нему, понадобится сервер. Это может быть платный сервер, может быть будет достаточно бесплатного VPS/PaaS, а, может, даже сойдет запускать что-то на своем личном компьютере. Но что-то запускать придется.
    Ответ написан
    Комментировать
  • На какой платформе лучше держать telegram бота на python?

    @OlegPyatakov
    pyatakov.com
    PaaS (Heroku, IBM, PythonAnywhere) решения проще использовать, есть бесплатные тарифы, но, как правило, есть свои ограничения, плюс надо изучать специфику платформ.

    VPS лучше с точки зрения утилизации мощностей, применимости полученных знаний и отсутствия функциональных ограничений.
    Ответ написан
    Комментировать