在公共领域的GitHub上是我的电报机器人的代码,我的令牌在哪里。我想隐藏它,我该怎么办?我知道这应该用gitignore来完成
import telebot
import time
TOKEN = "872521057:AAF2Kx4Y3WC-cs................"
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.reply_to(message, "Hello")
@bot.message_handler(func=lambda m: True)
def echo_all(message):
bot.reply_to(message, message.text)
bot.polling(none_stop=True)
如果要部署到Heroku,更好的方法是使用环境变量。
更改:
TOKEN = None
with open("token.txt") as f:
TOKEN = f.read().strip()
至:
import os
TOKEN = os.environ["TOKEN"]
然后,使用命令heroku config:add TOKEN=…
设置环境变量。
要在本地运行bot,请使用:
TOKEN=… python3 bot.py
我希望有所帮助!
.gitignore
不能用于忽略代码行,只能忽略整个文件。
但是,您可以从文件中读取令牌,并将其放入.gitignore
中。
这是我如何做到的:
/revoke
命令发送到@BotFather on Telegram来撤销您的令牌。token.txt
放在你的.gitignore
并提交。token.txt
并将新令牌放入其中。TOKEN = …
的行更改为:
TOKEN = None
with open("token.txt") as f:
TOKEN = f.read().strip()
这将读取您之前创建的token.txt
文件,并将其存储在TOKEN
变量中,因此您的令牌保持私有。