Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用gitignore隐藏bot电报令牌?_Python 3.x_Github_Gitignore_Telegram Bot - Fatal编程技术网

Python 3.x 如何使用gitignore隐藏bot电报令牌?

Python 3.x 如何使用gitignore隐藏bot电报令牌?,python-3.x,github,gitignore,telegram-bot,Python 3.x,Github,Gitignore,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):

在公共域的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()
致:

然后,使用命令heroku config:addtoken=…设置环境变量

要在本地运行bot,请使用:

TOKEN=… python3 bot.py
我希望这有帮助


原始答案
.gitignore
不能用于忽略代码行,只能忽略整个文件

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

我是这样做的:

  • 为了安全起见,首先通过向发送
    /revoke
    命令来撤销令牌

  • token.txt
    放入
    .gitignore
    并提交

  • 在bot代码旁边创建一个文件
    token.txt
    ,并将 里面有新的标记

  • 之后,将写有
    TOKEN=…
    的行更改为:

    TOKEN = None
    
    with open("token.txt") as f:
        TOKEN = f.read().strip()
    
    这将读取您先前创建的
    token.txt
    文件,并存储 它位于
    TOKEN
    变量中,因此您的令牌保持私有

  • 更新 如果要部署到Heroku,更好的方法是使用环境变量

    更改:

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

    然后,使用命令heroku config:addtoken=…设置环境变量

    要在本地运行bot,请使用:

    TOKEN=… python3 bot.py
    
    我希望这有帮助


    原始答案
    .gitignore
    不能用于忽略代码行,只能忽略整个文件

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

    我是这样做的:

  • 为了安全起见,首先通过向发送
    /revoke
    命令来撤销令牌

  • token.txt
    放入
    .gitignore
    并提交

  • 在bot代码旁边创建一个文件
    token.txt
    ,并将 里面有新的标记

  • 之后,将写有
    TOKEN=…
    的行更改为:

    TOKEN = None
    
    with open("token.txt") as f:
        TOKEN = f.read().strip()
    
    这将读取您先前创建的
    token.txt
    文件,并存储 它位于
    TOKEN
    变量中,因此您的令牌保持私有


  • 请解释如何将token.txt放入.gitignore?谢谢你的回答)@kerofaааааааааааааааааааааааааааа。我希望这会有所帮助,它应该会起作用。:)请解释如何将token.txt放入.gitignore?谢谢你的回答)@kerofaааааааааааааааааааааааааааа。我希望这会有所帮助,它应该会起作用。:)