Как стать автором
Обновить

Комментарии 22

На днях тоже писал своего бота, но только на flask. Столкнулся с проблемой, что запросы ко мне просто не приходят, ошибки было 2: попытка сделать бота на поддомене, в то время как сертификат был только на домен, и нужно указывать все промежуточные сертификаты. Нашёл ещё интересную библиотечку для работы с ботом — github.com/datamachine/twx.botapi (кто-нибудь ей пользовался?). Но вот так и не понял как же удобней этого бота разрабатывать локально, на заглушках?
Разрабатывать локально — я просто генерировал json, который должен приходить в хук и слал его локально себе curl'om. Вполне рабочий вариант.
Статья не про то как писать ботов, а как написать примитивный текстовый бот. Нет указаний по целому ряду вещей для полноценного бота, например что бот пока не сможет забрать фото от пользователя, что аудио принимается только в одном формате. Как правильно заполнить словарь чтобы отправить фото, аудио, видео и документы от бота. Как создать кастомную клавиатуру.
Тут есть пример отправления изображения, аудио, видео, и стикеры посути отправляются также, осторожно там есть мат))
github.com/Ingener74/Telegram-Bot/blob/master/TelegramBox.py
Если тут бывают разработчики Телеграма, сообщение для них:

Собственно хотелось бы увидеть в сл. обновлении BOT API, так это получение статуса пользователя, точнее, онлайн ли он, если нет, когда он был в сети последний раз.
Ждём первую текстовую РПГ. Помню в ICQ ботов было море, на любой вкус: анекдоты, новости, погода, анонимные чаты… эх Пашка «вернул 2007»
Telegram Bot на php: github.com/akalongman/php-telegram-bot
github.com/search?l=PHP&o=desc&q=telegram+bot&s=updated&type=Repositories&utf8=%E2%9C%93
Допустим, я хочу слать сообщения одному из своих друзей из списка контактов в Телеграме.
Бота я зарегистрировал. Как теперь выцепить параметр chat_id друга для метода sendMessage?
Хочу отметить, что у Telegram документация ужасного качества, из неё совершенно не понятно, как что-то полезное сделать.
абсолютно ясная документация.
chat_id выцепить из объекта Update, полученного с помощью getUpdates(), после того, как ваш друг напишет вашему боту.
Разобрался, спасибо. Тем не менее, в документации не помешал бы пример обращения к боту/отсылки ответа.
все-таки это документация для программистов — примеры для новичков напишут на хабре
Боты могут писать только тем, кто первым им написал. Что бы не спамили с ботов
Да еще есть такой нюанс, бот не может писать боту. У нас была идея, реализовать на ботах техсаппорт. Человек пишет главному боту, тот пересылает сообщение промежуточному, промежуточный пишет саппорта. Наоборот аналогично. Оказалось что нельзя, получаем ошибку «Error: Bad Request: user not found». Как ответила ТП телеграма на это:
Using the current bot API, it is not possible.

The bot API is still in its infancy right now. There are many potential features to consider and implement. We'll be studying what people do with their bots for a while to see which directions will be most important for the platform.
Ты говоришь, что тебе удалось использовать heroku для хостинга бота + ты используешь webHook. Когда я попробовал хостить бота на heroku, приложение падает через 60 секунд с ошибкой: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch. Погуглив, я получил ответ, что heroku не может слушать определенный порт и надо использовать переменную process.env.PORT в нее heroku поставит тот порт, который посчитает нужным. Соответсвенно порт мне присваевается не правильный и telegram выдает соответствующую ошибку.

Скажи сталкивался ли ты с этим? Как решал?
Ну собственно, как Хероку пишет — так и решал:

from os import environ
def main():
...
    application.listen(environ["PORT"])

Проблем не возникало.

Правда мне бесплатный хероку надоел своими фризами и я впоследствии весь код переписал на Flask для GAE. До 10 ботов нахаляву можно спокойно запустить и они не спят.

Эмм, получается можно указать серверу телеграма https-урл с произвольным портом?
Вопрос был про Heroku.

Heroku работает так: запускает приложение на нужном ему порту, а потом все запросы на http(s)://<имя_приложения>.herokuapp.com проксирует на него. Разговора про порт, который указывать Телеграмму — не было.
Подскажите, пожалуйста, можно ли сделать замену слов при отправке сообщений? Или это можно реализовать только хуком операционной системы?
Страдаю из-за этих строк в документации:
Messages that mention the bot by username
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории