如何用 gitignore 隐藏机器人 Telegram 令牌?
How to hide bot Telegram token with gitignore?
在 public 域中的 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=…
设置环境变量
要在本地 运行 您的机器人,请使用:
TOKEN=… python3 bot.py
希望对您有所帮助!
原回答
.gitignore
不能用于忽略代码行,只能忽略整个文件。
但是,您可以从文件中读取令牌,然后将 that 放入您的 .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
变量中,因此您的令牌保持私密。
在 public 域中的 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=…
设置环境变量
要在本地 运行 您的机器人,请使用:
TOKEN=… python3 bot.py
希望对您有所帮助!
原回答
.gitignore
不能用于忽略代码行,只能忽略整个文件。
但是,您可以从文件中读取令牌,然后将 that 放入您的 .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
变量中,因此您的令牌保持私密。