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

Ива*_*нов 2 github gitignore python-3.x telegram-bot

在公共领域的 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)
Run Code Online (Sandbox Code Playgroud)

gro*_*lex 5

更新

\n\n

如果您想部署到 Heroku,更好的方法是使用环境变量。

\n\n

改变:

\n\n
TOKEN = None\n\nwith open("token.txt") as f:\n    TOKEN = f.read().strip()\n
Run Code Online (Sandbox Code Playgroud)\n\n

到:

\n\n
import os\n\nTOKEN = os.environ["TOKEN"]\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,使用命令heroku config:add TOKEN=\xe2\x80\xa6设置环境变量。

\n\n

要在本地运行您的机器人,请使用:

\n\n
TOKEN=\xe2\x80\xa6 python3 bot.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

我希望这有帮助!

\n\n
\n\n

原答案

\n\n

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

\n\n

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

\n\n

我的做法如下:

\n\n
    \n
  1. 为了安全起见,首先通过在 Telegram 上/revoke@BotFather发送命令来撤销您的令牌。

  2. \n
  3. 放入token.txt你的.gitignore并提交。

  4. \n
  5. 在您的机器人代码旁边创建一个文件token.txt,然后将您的\n新令牌放入其中。

  6. \n
  7. 之后,将显示的行更改TOKEN = \xe2\x80\xa6为:

    \n\n
    TOKEN = None\n\nwith open("token.txt") as f:\n    TOKEN = f.read().strip()\n
    Run Code Online (Sandbox Code Playgroud)\n\n

    这将读取token.txt您之前创建的文件,并将其存储在TOKEN变量中,以便您的令牌保持私有。

  8. \n
\n