I just find the post without any reply on stackoverflow when i create this post... TelegramBot. "Webhook can be set up only on ports 80, 88, 443 or 8443" error on heroku webserver
my testing code is here:
from configparser import ConfigParser
import logging
import os
import telegram
from flask import Flask, request
from telegram.ext import Updater, Dispatcher, MessageHandler, Filters, CommandHandler
env = ConfigParser()
env.read('config.ini')
TOKEN = env['TELEGRAM']['ACCESS_TOKEN']
PORT = int(os.environ.get('PORT', '8443'))
updater = Updater(token=TOKEN)
#
#body part ( that's not important to show)
#
updater.start_webhook(listen="0.0.0.0",
port=PORT,
url_path=TOKEN)
updater.bot.set_webhook("https://tgbot00.herokuapp.com/" + TOKEN)
updater.idle()
but server told me ...
here2021-03-19T14:48:06.712894+00:00 app[web.1]: Error while bootstrap set webhook: Bad webhook: webhook can be set up only on ports 80, 88, 443 or 8443
2021-03-19T14:48:06.713033+00:00 app[web.1]: Failed bootstrap phase after 0 retries (Bad webhook: webhook can be set up only on ports 80, 88, 443 or 8443)
I have struggled these about a week and almost success but somehow so less information found on google
Do I need to setup something on my remoted Linux system about PORT.?
could someone help .?
thx a lot...!
UPDATE---------------------------------------- https://github.com/python-telegram-bot/python-telegram-bot/wiki/Webhooks#heroku
I think this is not about SSL problem
Heroku
On Heroku using webhook can be beneficial on the free-plan because it will
automatically manage the downtime required. The reverse proxy is set up for you and an environment
is created. From this environment you will have to extract the port the bot is supposed to listen on.
Heroku manages the SSL on the proxy side, so you don't have provide the certificate yourself.