如何使用Heroku安全隐藏我的不一致bot API密钥?

时间:2020-09-01 03:50:53

标签: heroku discord.py api-key

提供一些背景知识:一段时间以来,我一直在使用python开发一个非常简单的discord机器人。它是在我的计算机上运行的,我曾经使用一个名为config.py的python文件(存储在.gitignore中)来使我的API密钥保密:

from config import * #retrieve file and it's variables
bot.run(api_key)

然后,随着我的机器人的发展,我调查了Heroku,以托管我的机器人24/7,而不必在自己的计算机上运行它。
但是,Heroku已连接到我的Github,并且由于我的.gitignore文件,我的Heroku应用无法检索API变量。

有什么方法可以让我的Heroku应用程序检索我的API密钥,而无需将其发布在我的存储库中?
非常感谢!

-mficco

1 个答案:

答案 0 :(得分:1)

方法很多。

使用configparser将在仓库中

在您的代码中应该是这样

from configparser import ConfigParser

config = ConfigParser()
config.read("config.ini")

token = ["BOT"]["NAMEHERE]

您的config.ini文件位于同一目录中,您可以跳过[BOT],但只是整理一下(如果您有一件事情)

[BOT]
NAMEHERE = abjigaoi1654165

请记住,您必须在存储库中包含以上文件。

使用Heroku environment variable的其他方法。

您还可以在Heroku信息中心的应用程序的“设置”标签中编辑配置变量,添加BOT_TOKEN,然后按如下所示导入。

import os
token = os.environ.get('BOT_TOKEN')