Как решить эту ошибку (post / http / 1.1 "405) в боте Telegram, используя колбу Python с WebhookPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как решить эту ошибку (post / http / 1.1 "405) в боте Telegram, используя колбу Python с Webhook

Сообщение Anonymous »

Я пытаюсь создать бот Python Telegram, который управляет моей группой команды, добавляя задачи и напоминания.
Я развернул код на render.com, и эта ошибка: (post /http /1.1 "405) появляется в его журналах. src = "https://i.sstatic.net/cbafzs2r.png"/>
Вот код:

Код: Выделить всё

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

# تحميل متغيرات البيئة
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"]

# جدولة المهام
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

def handle_message(message):
chat_id = message["chat"]["id"]
user_id = message["from"]["id"]
text = message.get("text", "")

if text.startswith("/addtask") and user_id in AUTHORIZED_USERS:
add_task(chat_id, user_id, text)
elif text.startswith("/viewtasks"):
view_tasks(chat_id)
elif text.startswith("/setreminder") and user_id in AUTHORIZED_USERS:
set_reminder(chat_id, user_id, text)
else:
send_message(chat_id, "❌ أمر غير معروف أو ليس لديك الصلاحية!")

def add_task(chat_id, user_id, text):
try:
_, title, desc, due_date, priority = text.split("|")
task = {
"title": title.strip(),
"description": desc.strip(),
"due_date": due_date.strip(),
"priority": priority.strip(),
"created_by": user_id,
"created_at": datetime.utcnow()
}
tasks_collection.insert_one(task)
send_message(chat_id, "✅ تم إضافة المهمة بنجاح!")
except:
send_message(chat_id, "❌ صيغة غير صحيحة! استخدم:\n`/addtask | العنوان | الوصف | YYYY-MM-DD | الأولوية (Low, Medium, High)`")

def view_tasks(chat_id):
tasks = list(tasks_collection.find())
if not tasks:
send_message(chat_id, "📭 لا توجد مهام حاليًا.")
return

message = "📌 **قائمة المهام:**\n"
for task in tasks:
message += f"\n📍 **{task['title']}**\n📝 {task['description']}\n📅 {task['due_date']}\n⚠️ {task['priority']}\n---"

send_message(chat_id, message)

def set_reminder(chat_id, user_id, text):
try:
_, task_title, remind_time = text.split("|")
remind_time = datetime.strptime(remind_time.strip(), "%Y-%m-%d %H:%M")

reminder = {
"task_title": task_title.strip(),
"remind_time": remind_time,
"chat_id": chat_id
}
reminders_collection.insert_one(reminder)

scheduler.add_job(
send_reminder,
trigger=DateTrigger(run_date=remind_time),
args=[chat_id, task_title]
)

send_message(chat_id, "⏰ تم تعيين التذكير بنجاح!")
except:
send_message(chat_id, "❌ صيغة غير صحيحة! استخدم:\n`/setreminder | عنوان المهمة | YYYY-MM-DD HH:MM`")

def send_reminder(chat_id, task_title):
send_message(chat_id, f"🔔 تذكير بالمهمة: **{task_title}**")

def send_message(chat_id, text):
url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
payload = {"chat_id": chat_id, "text": text, "parse_mode":  "Markdown"}
requests.post(url, json=payload)

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")
Я попытался спросить GPT, но все решения не работали, установление Webhook была вначале, но не работал.>

Подробнее здесь: https://stackoverflow.com/questions/794 ... -python-fl
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как решить эту ошибку (post / http / 1.1 "405) в боте Telegram, используя колбу Python с Webhook
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Ошибки импорта в боте Telegram (python-telegram-bot)
    Anonymous » » в форуме Python
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Ошибка: метод не разрешен (POST): «POST/HTTP/1.1» 405 0
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Ошибка: метод не разрешен (post): «post / http / 1.1» 405 0
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Поддержка интерактивного ввода через терминал bash в боте Telegram на Python.
    Anonymous » » в форуме Linux
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»