Slack Bot sendet eine neue Nachricht, anstatt das Original zu aktualisierenPython

Python-Programme
Guest
 Slack Bot sendet eine neue Nachricht, anstatt das Original zu aktualisieren

Post by Guest »

Ich erstelle mithilfe von FastAPI einen Slack-Bot, der eine Aufgabe mit langer Laufzeit ausführt und die ursprüngliche Nachricht in Slack aktualisiert, nachdem die Aufgabe abgeschlossen ist. Anstatt jedoch die ursprüngliche Nachricht zu aktualisieren, sendet er eine neue.
Erwartetes Verhalten:
  • Der Bot sollte Zeigen Sie eine erste Nachricht an („Ihre Anfrage wird bearbeitet...“) und aktualisieren Sie später dieselbe Nachricht mit dem Endergebnis.
Tatsächliches Verhalten:
  • Die erste Nachricht wird korrekt gesendet, aber Wenn die Aufgabe abgeschlossen ist, wird eine neue Nachricht gepostet, anstatt die ursprüngliche zu aktualisieren.
Code-Implementierung:

FastAPI-Endpunkt:

Code: Select all

@app.post("/greet")
async def greet_user(
background_tasks: BackgroundTasks,
user_name: str = Form(...),
response_url: str = Form(...)  # Provided by Slack
):
background_tasks.add_task(
process_long_running_task,
user_name=user_name,
response_url=response_url
)
return JSONResponse(
content={
"response_type": "ephemeral",
"text": "Processing your request..."
}
)

Hintergrundaufgabe:

Code: Select all

async def process_long_running_task(user_name: str, response_url: str):
await asyncio.sleep(15)  # Simulate long-running task
final_response = {
"response_type": "in_channel",
"text": f"Hii, {user_name}. How can I help you today?"
}
async with httpx.AsyncClient() as client:
await client.post(response_url, json=final_response)
Frage:
Wie kann ich sicherstellen, dass der Bot die ursprüngliche Nachricht aktualisiert, anstatt eine neue zu posten? Muss ich zusätzliche Parameter oder eine andere API-Methode verwenden?
Vielen Dank für jede Hilfe!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post