Я пытаюсь создать биткойн Telegram Bot, который будет отправлять текущий курс биткойнов.
Я застрял в части своего кода Telegram API, где мне нужно отправить свое сообщение.
@bot.message_handler(commands=['bit'])
def bit(message):
link = 'https://blockchain.info/ru/ticker'
response = requests.get(link).text
text = json.loads(response)
bot.send_message('Продажа ',text["RUB"]["sell"],'рублей','\nПокупка ',text["RUB"]["buy"],'рублей')
Необходимые библиотеки, такие как json, запросы, телебот, установлены правильно.
Другие команды, такие как /start
или просто ответ на обычные сообщения, работают нормально, но это ошибка, которую я получаю при попытке отправить курс биткойнов:
Error text: ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: unsupported parse_mode"
Вы уверены, что придерживаетесь подписи, send_message()
подробно описанной в ваших API- документах ?
Похоже, вы указываете несколько аргументов для своего текстового параметра, попробуйте заключить его в оператор, например:
text = json.loads(response)
messageText = 'Продажа '+text["RUB"]["sell"]+'рублей'+'\nПокупка '+text["RUB"]["buy"]+'рублей'
Затем вызовите send_message()
метод, указав следующие три необязательных параметра:
chat_id
text
parse_mode
Чтобы:
@bot.message_handler(commands=['bit'])
def bit(message):
link = 'https://blockchain.info/ru/ticker'
response = requests.get(link).text
text = json.loads(response)
chatId = '@channelusername'
messageText = 'Продажа '+text["RUB"]["sell"]+'рублей'+'\nПокупка '+text["RUB"]["buy"]+'рублей'
bot.send_message(chatId, messageText, parse_mode=HTML)
Конечно, не забудьте отредактировать свой chatId
, который должен быть «Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername)».
Telegram API Error Code 400: как убрать ошибку?
Самых разных программ сейчас есть достаточно много. Они устанавливаются на телефоны, планшеты, компьютеры и ноутбуки. Использовать их можно для разных целей, но в большинстве случаев, каждый человек имеет что-то, что позволяет ему поддерживать связь с другими людьми. Это может быть социальная сеть, мессенджер или еще какой-то способ для обмена сообщениями. Некоторые из них даже позволяют проводить какую-то автоматизацию процессов, создавать группы и ботов, которые позволяют объединить людей.
Телеграм
Telegram — кроссплатформенная система мгновенного обмена сообщениями (мессенджер) с функциями VoIP, позволяющая обмениваться текстовыми, голосовыми и видеосообщениями, стикерами и фотографиями, файлами многих форматов. Также можно совершать видео- и аудиозвонки и трансляции в каналах и группах.
Является достаточно популярным мессенджером, потому что позволяет создавать разные группы, а в них добавлять ботов, которые могут собирать информацию. Так что им пользуется много человек, потому что он позволяет искать определенную информацию или общаться в формате чата.
Ошибка запроса
Telegram API Error Code 400 Bad request обычно связана с каким0то ботом или автоматизацией. Возникает она в том случае, когда вы хотите запросить или просмотреть какую-то информацию. Может появится и в других ситуациях но это маловероятно, потому что нужен именно запрос, иначе выдаст какой-то другой код ошибки.
Есть несколько случаев, когда вы с помощью бота можете получить такой ответ:
- Подобный сбой может вылетать когда вы меняете текст на точно такой же текст. То есть текст “привет кукушка”, вы пытаетесь изменить на “привет кукушка”.
- Либо кто-то из участников чата, либо вы ранее уже удалили это сообщение
- Ошибка 400 Bad Request – это код ответа, который означает, что сервер не смог обработать запрос, отправленный клиентом из-за неверного синтаксиса
Первые ситуации относятся к тому, что вы пытаетесь сделать что-то, что сделать нельзя или обращаетесь к несуществующему объекту. Последний случай связан с самой программой и построение запроса. Если там была какая-то ошибка или команда, которую телеграмм или сервер не знает, то вы получите такой код.
В простейших случаях это бывают незакрытые скобки или кавычки, опечатка в команде, неправильное построение запроса или что-то подобное. Попробуйте заново перепроверить все это.