Как спрятать токен бота Telegram с gitignore? - PullRequest
0 голосов
/ 20 апреля 2019

На 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)

1 Ответ

2 голосов
/ 20 апреля 2019

Обновление

Если вы хотите выполнить развертывание в 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 нельзя использовать для игнорирования строк кода, только целых файлов.

Однако вы можете прочитать токен из файла, ипоместите , что в ваш .gitignore.

Вот как я это сделаю:

  1. Чтобы быть в безопасности, сначала отзовите свой токен, отправив/revoke команда для @ BotFather на Telegram .

  2. Поместите token.txt в свой .gitignore и подтвердите.

  3. Создайте файл token.txt рядом с вашим бот-кодом и вставьте в него свой новый токен.

  4. После этого измените строку с надписью TOKEN = … на:

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

    Это прочитает файл token.txt, который вы создали ранееи сохраните его в переменной TOKEN, чтобы ваш токен оставался закрытым.

...