在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)
答案 0 :(得分:2)
如果要部署到Heroku,更好的方法是使用环境变量。
更改:
TOKEN = None
with open("token.txt") as f:
TOKEN = f.read().strip()
收件人:
import os
TOKEN = os.environ["TOKEN"]
然后,使用命令heroku config:add TOKEN=…
设置环境变量。
要在本地运行您的机器人,请使用:
TOKEN=… python3 bot.py
希望对您有帮助!
.gitignore
不能用于忽略代码行,而只能用于整个文件。
但是,您可以从文件中读取令牌,然后将那个放入.gitignore
中。
这就是我要做的:
为了安全起见,首先通过向@BotFather on Telegram发送/revoke
命令来撤销令牌。
将token.txt
放入您的.gitignore
并提交。
在您的漫游器代码旁边创建文件token.txt
并将您的
新令牌。
之后,将TOKEN = …
所在的行更改为:
TOKEN = None
with open("token.txt") as f:
TOKEN = f.read().strip()
这将读取您先前创建的token.txt
文件,并存储
它放在TOKEN
变量中,因此您的令牌保持私有状态。