Метод Telegram API getUpdates () - PullRequest
       43

Метод Telegram API getUpdates ()

0 голосов
/ 04 августа 2020
https://api.telegram.org/bot<token>/getUpdates

Я хочу сделать чат-бота в python и интегрировать его с Telegram. Я использую этот API для получения сообщений пользователей. Он работает нормально, но иногда поле результата пустое. Из-за чего у меня происходит сбой кода. Через некоторое время я смог увидеть содержимое. Как решить эту проблему.

import requests

def get_last_update(offset):
  url="https://api.telegram.org/bot<token>/getUpdates?timeout=100"
  if offset:
    url=url+"&offset={}".format(offset+1)
  res=requests.get(url).json()
  return res["result"]

def send_message(chat_id,message):
  requests.post("https://api.telegram.org/bot<token>/sendMessage?text={}&chat_id={}".format(message,chat_id))

def find_ans(message):
  return "hi i am bot"


update_id=None
while True:
    updates = get_last_update(update_id)
    if updates:
        for item in updates:
            update_id = item["update_id"]
            try:
                message = str(item["message"]["text"])
            except:
                message = None
            from_ = item["message"]["from"]["id"]
            reply = find_ans(message)
            send_message(from_,reply)

Должен ли этот код работать нормально?

KeyError                                  Traceback (most recent call last)

<ipython-input-83-741da05a9e41> in <module>()
      1 update_id=None
      2 while True:
----> 3     updates = get_last_update(update_id)
      4     if updates:
      5         for item in updates:

<ipython-input-77-cbcc58e3e84e> in get_last_update(offset)
     65     url=url+"&offset={}".format(offset+1)
     66   res=requests.get(url).json()
---> 67   return res["result"]
     68 
     69 

KeyError: 'result'

Это ошибка, которую я получаю.

...