Issue in telegram bot by flask python and webhook.

Guys, I am writing a Telegram bot in (Python Flask) via webhook and I am facing a very strange problem that I have not found a solution for. It always appears in the logs of the site where the bot is hosted (render):

`127.0.0.1 - - [11/Mar/2025 02:20:01] "POST / HTTP/1.1" 405 -
`127.0.0.1 - - [11/Mar/2025 02:20:01] "POST / HTTP/1.1" 405 -
`127.0.0.1 - - [11/Mar/2025 02:20:01] "POST / HTTP/1.1" 405 -

Enter fullscreen mode Exit fullscreen mode

THE CODE:

`> `#modules
> import os
> import json
> import requests
> from flask import Flask, request
> from pymongo import MongoClient
> from apscheduler.schedulers.background import BackgroundScheduler
> from apscheduler.triggers.date import DateTrigger
> from dotenv import load_dotenv
> from datetime import datetime
> #imp.data
> load_dotenv()
> BOT_TOKEN = os.getenv("BOT_TOKEN")
> MONGO_URI = os.getenv("MONGO_URI")
> WEBHOOK_URL = os.getenv("WEBHOOK_URL")
> AUTHORIZED_USERS = list(map(int, os.getenv("AUTHORIZED_USERS", "").split(",")))
> # Flask
> app = Flask(__name__)
> # إعداد قاعدة البيانات MongoDB
> client = MongoClient(MONGO_URI)
> db = client["task_manager"]
> tasks_collection = db["tasks"]
> reminders_collection = db["reminders"]
> # Task scheduler
> scheduler = BackgroundScheduler()
> scheduler.start()
> #webhook
> @app.route("/", methods=["GET", "POST"])
> def home():
> if request.method == "POST":
> return "This endpoint is not for webhooks!", 405
> return "Bot is running!"
> @app.route("/webhook", methods=["POST"])
> def webhook():
> update = request.get_json()
> if update:
> handle_message(update.get("message", {}))
> return "", 200 # Always return a successful response
> #code here..
> #code here..
> if __name__ == "__main__":`
app.run(host="0.0.0.0", port=5000)
requests.get(f"https://api.telegram.org/bot{TOKEN}setWebhook?url=https://testbot-zppg.onrender.com")
`
`> `#modules
> import os
> import json
> import requests
> from flask import Flask, request
> from pymongo import MongoClient
> from apscheduler.schedulers.background import BackgroundScheduler
> from apscheduler.triggers.date import DateTrigger
> from dotenv import load_dotenv
> from datetime import datetime
> #imp.data
> load_dotenv()
> BOT_TOKEN = os.getenv("BOT_TOKEN")
> MONGO_URI = os.getenv("MONGO_URI")
> WEBHOOK_URL = os.getenv("WEBHOOK_URL")
> AUTHORIZED_USERS = list(map(int, os.getenv("AUTHORIZED_USERS", "").split(",")))
> # Flask
> app = Flask(__name__)
> # إعداد قاعدة البيانات MongoDB
> client = MongoClient(MONGO_URI)
> db = client["task_manager"]
> tasks_collection = db["tasks"]
> reminders_collection = db["reminders"]
> # Task scheduler
> scheduler = BackgroundScheduler()
> scheduler.start()
> #webhook
> @app.route("/", methods=["GET", "POST"])
> def home():
>     if request.method == "POST":
>         return "This endpoint is not for webhooks!", 405
>     return "Bot is running!"
> @app.route("/webhook", methods=["POST"])
> def webhook():
>     update = request.get_json()
>     if update:
>         handle_message(update.get("message", {}))
>     return "", 200  # Always return a successful response
> #code here..
> #code here..
> if __name__ == "__main__":`
    app.run(host="0.0.0.0", port=5000)
    requests.get(f"https://api.telegram.org/bot{TOKEN}setWebhook?url=https://testbot-zppg.onrender.com")
`
`> `#modules > import os > import json > import requests > from flask import Flask, request > from pymongo import MongoClient > from apscheduler.schedulers.background import BackgroundScheduler > from apscheduler.triggers.date import DateTrigger > from dotenv import load_dotenv > from datetime import datetime > #imp.data > load_dotenv() > BOT_TOKEN = os.getenv("BOT_TOKEN") > MONGO_URI = os.getenv("MONGO_URI") > WEBHOOK_URL = os.getenv("WEBHOOK_URL") > AUTHORIZED_USERS = list(map(int, os.getenv("AUTHORIZED_USERS", "").split(","))) > # Flask > app = Flask(__name__) > # إعداد قاعدة البيانات MongoDB > client = MongoClient(MONGO_URI) > db = client["task_manager"] > tasks_collection = db["tasks"] > reminders_collection = db["reminders"] > # Task scheduler > scheduler = BackgroundScheduler() > scheduler.start() > #webhook > @app.route("/", methods=["GET", "POST"]) > def home(): > if request.method == "POST": > return "This endpoint is not for webhooks!", 405 > return "Bot is running!" > @app.route("/webhook", methods=["POST"]) > def webhook(): > update = request.get_json() > if update: > handle_message(update.get("message", {})) > return "", 200 # Always return a successful response > #code here.. > #code here.. > if __name__ == "__main__":` app.run(host="0.0.0.0", port=5000) requests.get(f"https://api.telegram.org/bot{TOKEN}setWebhook?url=https://testbot-zppg.onrender.com") `

Enter fullscreen mode Exit fullscreen mode

I searched and asked Ai and never solved

原文链接:Issue in telegram bot by flask python and webhook.

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
In the face of difficulties, be brave, persistent and tirelessly to overcome it.
面对困难的时候,要勇敢、执着、不畏艰辛地去战胜它
评论 抢沙发

请登录后发表评论

    暂无评论内容