You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python代码中隐藏Discord Bot Token并安全推送到GitHub?

如何在Discord机器人Python项目中隐藏Token并安全公开代码

方法1:使用系统环境变量

直接将Token存储在系统环境变量中,代码通过读取环境变量获取Token,无需在代码中写入敏感信息:

  • 本地设置:
    • Windows:打开命令提示符执行 set DISCORD_BOT_TOKEN=你的机器人Token
    • Linux/macOS:打开终端执行 export DISCORD_BOT_TOKEN=你的机器人Token
  • 代码实现:
    import os
    import discord
    from discord.ext import commands
    
    # 从环境变量读取Token
    bot_token = os.getenv('DISCORD_BOT_TOKEN')
    bot = commands.Bot(command_prefix='!', intents=discord.Intents.all())
    
    @bot.event
    async def on_ready():
        print(f"已登录为 {bot.user.name}")
    
    bot.run(bot_token)
    
  • 部署场景:在云平台的项目设置面板中,找到环境变量配置项,添加DISCORD_BOT_TOKEN和对应值即可。

方法2:使用.env文件配合python-dotenv

通过专用的环境变量文件管理敏感信息,同时确保该文件不被推送到GitHub:

  1. 安装依赖库:
    pip install python-dotenv
    
  2. 创建.env文件(与项目主脚本同目录),写入:
    DISCORD_BOT_TOKEN=你的机器人Token
    
  3. 代码中加载并读取.env文件:
    import os
    from dotenv import load_dotenv
    import discord
    from discord.ext import commands
    
    # 加载.env文件中的变量
    load_dotenv()
    bot_token = os.getenv('DISCORD_BOT_TOKEN')
    bot = commands.Bot(command_prefix='!', intents=discord.Intents.all())
    
    @bot.event
    async def on_ready():
        print(f"已登录为 {bot.user.name}")
    
    bot.run(bot_token)
    
  4. 关键操作:在项目根目录创建.gitignore文件,添加一行.env,确保该文件不会被Git追踪和推送。

方法3:使用示例配置文件

通过示例文件公开配置结构,本地保留真实敏感信息:

  1. 创建config.py.example文件,写入占位内容:
    # 示例配置文件,请复制为config.py并填入真实Token
    DISCORD_BOT_TOKEN='你的机器人Token'
    
  2. 将config.py.example推送到GitHub,供他人参考配置结构。
  3. 本地创建config.py,写入真实Token,并将config.py添加到.gitignore中。
  4. 代码中导入配置:
    import discord
    from discord.ext import commands
    from config import DISCORD_BOT_TOKEN
    
    bot = commands.Bot(command_prefix='!', intents=discord.Intents.all())
    
    @bot.event
    async def on_ready():
        print(f"已登录为 {bot.user.name}")
    
    bot.run(DISCORD_BOT_TOKEN)
    

重要注意事项

  • 如果已经不小心将Token推送到GitHub,立即前往Discord开发者面板重置机器人Token,避免账号被恶意利用。
  • 永远不要在代码中硬编码Token,哪怕是注释里也不行,确保敏感信息全程脱离代码仓库。

内容的提问来源于stack exchange,提问作者John Han

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 04:25:31