from django.conf import settings from django.core.management.base import BaseCommand from django.urls import reverse import requests SETWEBHOOK_TMPL = "https://api.telegram.org/bot%s/setWebhook" class Command(BaseCommand): help = "Set up telegram bot's webhook address" def handle(self, *args, **options): if settings.TELEGRAM_TOKEN is None: return "Abort: settings.TELEGRAM_TOKEN is not set" form = { "url": settings.SITE_ROOT + reverse("hc-telegram-webhook"), "allowed_updates": ["message"], } url = SETWEBHOOK_TMPL % settings.TELEGRAM_TOKEN r = requests.post(url, json=form) if r.status_code != 200: return "Fail: status=%d, %s" % (r.status_code, r.content) return "Done, Telegram's webhook set to: %s" % form["url"]