如何使用gitignore隐藏机器人电报令牌?

问题描述 投票:0回答:1

在公共领域的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)
python-3.x github gitignore telegram-bot
1个回答
2
投票

Update

如果要部署到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

我希望有所帮助!


Original answer

.gitignore不能用于忽略代码行,只能忽略整个文件。

但是,您可以从文件中读取令牌,并将其放入.gitignore中。

这是我如何做到的:

  1. 为了安全起见,首先通过将/revoke命令发送到@BotFather on Telegram来撤销您的令牌。
  2. token.txt放在你的.gitignore并提交。
  3. 在机器人代码旁边创建一个文件token.txt并将新令牌放入其中。
  4. 之后,将说TOKEN = …的行更改为: TOKEN = None with open("token.txt") as f: TOKEN = f.read().strip() 这将读取您之前创建的token.txt文件,并将其存储在TOKEN变量中,因此您的令牌保持私有。
© www.soinside.com 2019 - 2024. All rights reserved.