TelegramBot error. TypeError: 'NoneType' object is not subscritable
TelegramBot error. TypeError: 'NoneType' object is not subscritable
import requests
import time
import json
class TelegramBot:
def __init__(self):
token = 'xxxxxxx'
self.url_base = f'api.telegram.org/bot{token}/'
#Iniciar o bot
def Iniciar(self):
update_id = None
while True:
atualizacao = self.obter_mensagens(update_id)
mensagens = atualizacao['result']
if mensagens:
for mensagem in mensagens:
update_id = mensagem['update_id']
chat_id = mensagem['message']['from']['id']
resposta = self.criar_resposta()
self.responder(resposta,chat_id)
#Obter mensagens
def obter_mensagens(self,update_id):
link_requisicao = f'{self.url_base}getUpdates?timeout=100'
if update_id:
link_requisicao = f'{link_requisicao}&offset={update_id + 1}'
resultado = requests.get(link_requisicao)
return json.loads(resultado.content)
#Criar uma resposta
def criar_respostas(self):
return 'Olá! Eu sou o EletroBot! Fui criado com a intenção de ajudar os estudantes de eletroeletrônica à passarem pelo curso! Em que posso ajudar?'
#Responder
def responder(self,resposta,chat_id):
#Enviar
link_de_envio = f'{self.url_base}sendMessage?chat_id={chat_id}&text={resposta}'
requests.get(link_de_envio)
bot = TelegramBot()
bot.Iniciar()
我正在尝试构建电报机器人,但它没有保留 运行,我无法解决此错误。有时它只是启动并崩溃并出现以下错误:
我该如何解决这个问题?
您的设计没有考虑 self.obter_mensagens(update_id)
returns None
的情况。您从 None
的 update_id
开始,所以看起来您是第一次 运行 self.obter_mensagens
,很可能 return None
.在对其进行任何下标之前,您应该检查 atualizacao
不是 None
。
您可以这样做:
...
atualizacao = self.obter_mensagens(update_id)
if atualizacao is not None:
mensagens = atualizacao['result']
else:
return
if mensagens:
...
import requests
import time
import json
class TelegramBot:
def __init__(self):
token = 'xxxxxxx'
self.url_base = f'api.telegram.org/bot{token}/'
#Iniciar o bot
def Iniciar(self):
update_id = None
while True:
atualizacao = self.obter_mensagens(update_id)
mensagens = atualizacao['result']
if mensagens:
for mensagem in mensagens:
update_id = mensagem['update_id']
chat_id = mensagem['message']['from']['id']
resposta = self.criar_resposta()
self.responder(resposta,chat_id)
#Obter mensagens
def obter_mensagens(self,update_id):
link_requisicao = f'{self.url_base}getUpdates?timeout=100'
if update_id:
link_requisicao = f'{link_requisicao}&offset={update_id + 1}'
resultado = requests.get(link_requisicao)
return json.loads(resultado.content)
#Criar uma resposta
def criar_respostas(self):
return 'Olá! Eu sou o EletroBot! Fui criado com a intenção de ajudar os estudantes de eletroeletrônica à passarem pelo curso! Em que posso ajudar?'
#Responder
def responder(self,resposta,chat_id):
#Enviar
link_de_envio = f'{self.url_base}sendMessage?chat_id={chat_id}&text={resposta}'
requests.get(link_de_envio)
bot = TelegramBot()
bot.Iniciar()
我正在尝试构建电报机器人,但它没有保留 运行,我无法解决此错误。有时它只是启动并崩溃并出现以下错误:
我该如何解决这个问题?
您的设计没有考虑 self.obter_mensagens(update_id)
returns None
的情况。您从 None
的 update_id
开始,所以看起来您是第一次 运行 self.obter_mensagens
,很可能 return None
.在对其进行任何下标之前,您应该检查 atualizacao
不是 None
。
您可以这样做:
...
atualizacao = self.obter_mensagens(update_id)
if atualizacao is not None:
mensagens = atualizacao['result']
else:
return
if mensagens:
...