Webhook de retorno
Quando você executa um bot pela API com o campo webhook_url, o Sinfonia avisa o seu sistema assim que a execução termina. Assim, você não precisa ficar consultando a plataforma para saber o resultado.
POST
{webhook_url}Enviado pelo Sinfonia para o endereço informado em
webhook_urlPayload
| Campo | Tipo | Descrição |
|---|---|---|
exec_id | integer | Número da execução. Use-o para buscar o log. |
status | string | Resultado da execução: success ou error. |
{
"status": "success",
"exec_id": 4512
}Entrega
- O Sinfonia faz um
POSTcomContent-Type: application/jsonpara a URL informada. - Se a chamada falhar, o envio é repetido até 3 vezes.
- Responda com um status
2xxo mais rápido possível. Se o processamento for demorado, faça-o depois de responder. - O endereço precisa estar acessível pela internet. Use
https.
Dica
O webhook não leva um token. Para garantir que a chamada veio do Sinfonia, inclua um segredo na própria URL (por exemplo https://meusistema.com/webhooks/sinfonia?key=um-segredo-longo) e confira no seu servidor. Depois, confirme o resultado buscando o log da execução pela API.
Exemplo de receptor
# pip install flask requests
import os
import requests
from flask import Flask, request, abort
app = Flask(__name__)
SINFONIA_TOKEN = os.environ["SINFONIA_TOKEN"]
WEBHOOK_KEY = os.environ["WEBHOOK_KEY"]
@app.post("/webhooks/sinfonia")
def sinfonia_webhook():
if request.args.get("key") != WEBHOOK_KEY:
abort(401)
event = request.get_json()
exec_id, status = event["exec_id"], event["status"]
log = requests.get(
f"https://sinfonia.live/api/v1/execlog/{exec_id}",
headers={"token": SINFONIA_TOKEN},
).json()
print(f"Execução {exec_id} terminou com {status}")
print(log)
return "", 204Última modificação em