Python Telegram Bot 错误

问题描述

我开始学习关于在 Telegram 中编写机器人程序的新东西,所以我写了我的第一行,但是当我尝试尝试时,我不断收到一些错误,所以这是我的代码和我不断收到的错误......

import telebot,config,os

API_KEY = os.getenv("API_KEY")
bot = telebot.TeleBot(API_KEY)

@bot.message_handler(commands=['Greet'])

def greet(message):
    bot.reply_to(message,"hey,how's it going?")


bot.polling()

运行后我得到这个:

Traceback (most recent call last):
  File "C:\Users\raccoon\Desktop\Coding room\Python 3.9\TelegramBot\main.py",line 12,in <module>
    bot.polling()
  File "C:\Users\raccoon\AppData\Local\Programs\Python\python39\lib\site-packages\telebot\__init__.py",line 496,in polling
    self.__threaded_polling(none_stop,interval,timeout,long_polling_timeout)
  File "C:\Users\raccoon\AppData\Local\Programs\Python\python39\lib\site-packages\telebot\__init__.py",line 555,in __threaded_polling
    raise e
  File "C:\Users\raccoon\AppData\Local\Programs\Python\python39\lib\site-packages\telebot\__init__.py",line 517,in __threaded_polling
    polling_thread.raise_exceptions()
  File "C:\Users\raccoon\AppData\Local\Programs\Python\python39\lib\site-packages\telebot\util.py",line 87,in raise_exceptions
    raise self.exception_info
  File "C:\Users\raccoon\AppData\Local\Programs\Python\python39\lib\site-packages\telebot\util.py",line 69,in run
    task(*args,**kwargs)
  File "C:\Users\raccoon\AppData\Local\Programs\Python\python39\lib\site-packages\telebot\__init__.py",line 322,in __retrieve_updates
    updates = self.get_updates(offset=(self.last_update_id + 1),timeout=timeout,long_polling_timeout = long_polling_timeout)
  File "C:\Users\raccoon\AppData\Local\Programs\Python\python39\lib\site-packages\telebot\__init__.py",line 292,in get_updates
    json_updates = apihelper.get_updates(self.token,offset,limit,allowed_updates,long_polling_timeout)
  File "C:\Users\raccoon\AppData\Local\Programs\Python\python39\lib\site-packages\telebot\apihelper.py",line 281,in get_updates
    return _make_request(token,method_url,params=payload)
  File "C:\Users\raccoon\AppData\Local\Programs\Python\python39\lib\site-packages\telebot\apihelper.py",line 76,in _make_request
    logger.debug("Request: method={0} url={1} params={2} files={3}".format(method,request_url,params,files).replace(token,token.split(':')[0] + ":{TOKEN}"))
AttributeError: 'nonetype' object has no attribute 'split'
[Finished in 1.3s]

我真的不知道如何解决这个问题,请如果有人能帮忙!

解决方法

从错误中我可以看出,您的 API_TOKEN 似乎不在您的计算机环境中。

您有两个 (?) 选择:

  1. 在您的环境中添加 API_TOKEN,在 Windows 的情况下,这可以在 Linux 上使用 set API_TOKEN your_api_keyexport API_TOKEN=your_api_key 完成

  2. 直接更改对 API_KEY 进行编码的代码

API_KEY = your_api_key
bot = telebot.TeleBot(API_KEY)
,

您需要先从项目根目录下的 .env 文件加载环境变量,使用 python-dotenv

import os
from dotenv import load_dotenv

load_dotenv()
API_KEY = os.getenv("API_KEY")

这应该有效。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...