Появляется какая-то ошибка когда я пишу сообщение боту
Я написал бота который должен внятно отвечать на сообщения с использованием Dialogflow, но почему-то когда я пишу этому боту сообщение в консоли выводится ошибка:
No error handlers are registered, logging exception.
Traceback (most recent call last):
File "/home/fox/.local/lib/python3.8/site-packages/telegram/ext/dispatcher.py", line 340, in process_update
handler.handle_update(update, self, check, context)
File "/home/fox/.local/lib/python3.8/site-packages/telegram/ext/handler.py", line 122, in handle_update
return self.callback(dispatcher.bot, update, **optional_args)
File "archi.py", line 14, in textMessage
response = responseJson['result']['fulfillment']['speech']
KeyError: 'result'
Я думал, что неправилный токен указал, но нет, все правилно. Не могу понять из-за чего ошибка: Вот сам код:
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import apiai, json
updater = Updater(token='1025050544:AAGt3e-******As2mnTzwJqMydL58ZB9nrc') # Токен API к Telegram
dispatcher = updater.dispatcher
# Обработка команд
def startCommand(bot, update):
bot.send_message(chat_id=update.message.chat_id, text='Привет, давай пообщаемся?')
def textMessage(bot, update):
request = apiai.ApiAI('981edceb55957bebb******a063290633cc46b26').text_request() # Токен API к Dialogflow
request.lang = 'ru' # На каком языке будет послан запрос
request.session_id = 'small-talk-ciqidr' # ID Сессии диалога (нужно, чтобы потом учить бота)
request.query = update.message.text # Посылаем запрос к ИИ с сообщением от юзера
responseJson = json.loads(request.getresponse().read().decode('utf-8'))
response = responseJson['result']['fulfillment']['speech']
if response:
bot.send_message(chat_id=update.message.chat_id, text=response)
else:
bot.send_message(chat_id=update.message.chat_id, text='Я Вас не совсем понял!')
# Хендлеры
start_command_handler = CommandHandler('start', startCommand)
text_message_handler = MessageHandler(Filters.text, textMessage)
# Добавляем хендлеры в диспетчер
dispatcher.add_handler(start_command_handler)
dispatcher.add_handler(text_message_handler)
# Начинаем поиск обновлений
updater.start_polling(clean=True)
# Останавливаем бота, если были нажаты Ctrl + C
updater.idle()