Reputation: 125
I was developing a telegram bot, running from my personal machine (Mac) The bot is running on python, in a specific environment with modules installed on that environment
Now that the bot is fine, I'd like to put it on a web server, running Apache. But I have some questions.
1) I have to install each module at the server to everybody or I can create an environment for this specific bot and apache runs that bot on that environment?
2) I was using getUpdates (makes my machine very slow, but is better to debug errors) and now I want to run using webhook. What a have to change exactly to make him work if webhook instead of getUpdates going to telegram server? Today the code to start and keep running is that:
def main():
updater = Updater(bot_token)
dp = updater.dispatcher
# Commands
dp.add_handler(CommandHandler("info", ranking_putaria))
dp.add_handler(CommandHandler("start", start))
# Start checking updates
dp.add_handler(MessageHandler(Filters.text,echo_msg))
dp.add_handler(MessageHandler(Filters.video | Filters.photo | Filters.document, echo_file))
dp.add_handler(MessageHandler(Filters.sticker, echo_sticker))
# Log errors
#dp.add_error_handler(error)
# start the bot
updater.start_polling()
# Run the bot until you press Ctrl-C or the process receives SIGINT,
# SIGTERM or SIGABRT. This should be used most of the time, since
# start_polling() is non-blocking and will stop the bot gracefully.
updater.idle()
if __name__ == '__main__':
main()
Upvotes: 4
Views: 14270
Reputation: 101
You can set up webhook with the following steps:
Set up webhook on your telegram bot object:
import os
PORT = int(os.environ.get('PORT', '5000'))
bot = telegram.Bot(token = "YOUR TOKEN HERE")
bot.setWebhook("YOUR WEB SERVER LINK HERE" + "YOUR TOKEN HERE")
Replace your long polling with webhook - i.e replace updater.start_polling()
with
updater.start_webhook(listen="0.0.0.0",
port=PORT,
url_path="YOUR TOKEN HERE")
updater.bot.setWebhook("YOUR WEB SERVER LINK HERE" + "YOUR TOKEN HERE")
updater.idle()
This worked for me when I hosted my bot using Heroku. Cheers!
Upvotes: 1