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.
Documentation updated: https://github.com/python-telegram-bot/python-telegram-bot/wiki/Webhooks#heroku
import os
TOKEN = "TOKEN"
PORT = int(os.environ.get('PORT', '8443'))
updater = Updater(TOKEN)
# add handlers
updater.start_webhook(listen="0.0.0.0",
port=PORT,
url_path=TOKEN,
webhook_url="https://<appname>.herokuapp.com/" + TOKEN)
updater.idle()
Not use set_webhook
, use webhook_url
param in start_webhook
2021-03-19T18:12:15.168205+00:00 heroku[web.1]: State changed from crashed to starting
2021-03-19T18:12:20.004562+00:00 heroku[web.1]: Starting process with command `python3 main.py`
2021-03-19T18:12:24.283471+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-19T18:12:24.283508+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)
2021-03-19T18:12:24.286525+00:00 app[web.1]: unhandled exception in Bot:1747558409:updater
2021-03-19T18:12:24.286526+00:00 app[web.1]: Traceback (most recent call last):
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.