问题描述
我开始学习关于在 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 似乎不在您的计算机环境中。
您有两个 (?) 选择:
-
在您的环境中添加 API_TOKEN,在 Windows 的情况下,这可以在 Linux 上使用
set API_TOKEN your_api_key
或export API_TOKEN=your_api_key
完成 -
直接更改对 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")
这应该有效。