python-3.x - 如何使用 gitignore 隐藏机器人 Telegram token ?

标签 python-3.x github gitignore telegram-bot

在公共(public)领域的 GitHub 上是我的电报机器人的代码,我的 token 在哪里。我想隐藏它,我该怎么办?我知道这应该用 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 不能用于忽略代码行,只能忽略整个文件。

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

我的做法是这样的:

  1. 为了安全起见,请首先通过将 /revoke 命令发送到 @BotFather on Telegram 来撤销您的 token 。 .

  2. token.txt 放入 .gitignore 中并提交。

  3. 在您的机器人代码旁边创建一个文件 token.txt 并将您的 其中有新 token 。

  4. 之后,将 TOKEN = ... 行更改为:

    TOKEN = None
    
    with open("token.txt") as f:
        TOKEN = f.read().strip()
    

    这将读取您之前创建的 token.txt 文件,并存储 它位于 TOKEN 变量中,因此您的 token 保持私有(private)。

关于python-3.x - 如何使用 gitignore 隐藏机器人 Telegram token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55776767/

相关文章:

ruby-on-rails - Github 直接到 heroku

git - 在压缩的公共(public)和初始私有(private)中拆分 git repo

go - Github 操作 go test 找不到包错误。我怎样才能解决这个问题?

git - .gitignore_global 在 OS X 上保存在哪里?

python - 为 Python 项目添加 .gitignore 文件的最佳实践?

python - 如何在 magic __getattr__ 中获取实例属性?

python - 标识符中的无效字符-Python

python - 值错误: could not convert string to float: 'False' in python

python - 如何在 Python 中解析双引号的 csv 文件?

git - 忽略目录与使用通配符忽略目录