Slack Bot sendet eine neue Nachricht, anstatt das Original zu aktualisieren
Posted: 27 Dec 2024, 11:12
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:
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!
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.
- Die erste Nachricht wird korrekt gesendet, aber Wenn die Aufgabe abgeschlossen ist, wird eine neue Nachricht gepostet, anstatt die ursprüngliche zu aktualisieren.
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)
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!