Я пытаюсь создать простого tg-бота на python, используя django и pyTelegramBotApi, который отвечает «Hello» на /start. Я установил веб-хук, и бот корректно получает обновления, но когда дело доходит до send_message, он просто проваливается и ничего не отправляет.
@csrf_exempt
def update_bot(request):
json_str = request.body.decode("UTF-8")
update = types.Update.de_json(json_str)
tele_bot.process_new_updates([update])
return HttpResponse({'code': 200})
@tele_bot.message_handler(commands=['start'])
def start_message(message):
print("sending message")
print(tele_bot.send_message(message.chat.id, "Hello"))
И вывод консоли
sending message
[24/Dec/2020 10:54:46] "POST /bot/imagesmanager/ HTTP/1.1" 200 4
Я не уверен, в чем ошибка, потому что сообщение не печатается, но я использую это: https://api.telegram.org/{bot_id}/sendMessage
уже давно, и оно работает отлично. Документация очень информативна о том, как использовать API в этой форме.
вы можете проверить свой идентификатор чата, иногда даже ошибка одного символа вызывает проблему.
Я сделал. На самом деле, я взял chat_id из своей программы, чтобы попытаться отправить сообщение через tg api, и, как я уже сказал, это сработало нормально.
Я решил проблему. Я только что прочитал свой токен с \n в конце (нашел с repr(token)
), не знаю, почему обновление работало правильно, но простая полоска мне достаточно хорошо помогла)
да, я пробовал использовать API телеграммы, и он отлично работает, но не понимаю, почему send_message вообще не работает:/