Saltar para o conteúdo
🎉 Bem-vindo! Sinfonia by 27Devs é uma plataforma completa de orquestração de robôs, solicite já seu acesso.
Webhook de retorno

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_url

Payload

CampoTipoDescrição
exec_idintegerNúmero da execução. Use-o para buscar o log.
statusstringResultado da execução: success ou error.
{
  "status": "success",
  "exec_id": 4512
}

Entrega

  • O Sinfonia faz um POST com Content-Type: application/json para a URL informada.
  • Se a chamada falhar, o envio é repetido até 3 vezes.
  • Responda com um status 2xx o 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