Todos los productos
Search
Centro de documentos

Data Management:Uso de notificaciones personalizadas de webhook

Última actualización: Sep 03, 2026

Además de las notificaciones por SMS, correo electrónico, DingTalk, chatbot de DingTalk y Lark, Data Management DMS admite webhooks personalizados.

Configuración

Para configurar su webhook, vaya a la sección Webhook en su configuración personal, introduzca la URL de su endpoint y seleccione el canal de notificación Webhook.

También debe configurar un método de firma y una clave de firma. Haga clic en el botón Test para comprobar la conectividad de la URL de su webhook. El panel de configuración de notificaciones también le permite seleccionar otros canales, como DingTalk (exclusive), DingTalk, DingTalk chatbot, Email, Lark y SMS.

Para obtener más información, consulte Configure your personal information and notification methods.

Eventos

Cuando se activa una notificación en DMS, el sistema envía una solicitud HTTP POST a la URL del webhook que configuró. La solicitud consta de un encabezado y un cuerpo.

Encabezado de la solicitud

DMS-Event: Message Hook

Cuerpo de la solicitud

Parámetro

Tipo

Descripción

submitterUid

String

UID del usuario que envió la solicitud.

submitterName

String

Nombre del usuario que envió la solicitud.

category

String

Módulo de la función, como ticket, orquestación de tareas o desarrollo de almacén de datos.

module

String

Tipo de negocio, como solicitud de permiso, cambio de datos, diseño de esquema o exportación de datos.

event

String

Evento específico. Ejemplos: Pending Approval, Succeeded y Failed.

taskId

String

ID del ticket o flujo de tareas.

taskName

String

Nombre de la tarea.

eventTime

String

Hora en que ocurrió el evento.

message

String

Texto del mensaje integrado del sistema.

targetUsers

Array of objects

Destinatarios previstos. Se admiten varios destinatarios.

receivers

Array of objects

Matriz de objetos que representa a los destinatarios reales. Los usuarios sin un método de notificación configurado no recibirán notificaciones.

uid

String

UID del destinatario.

name

String

Nombre del destinatario.

signatureMethod

String

Método de firma. Se admiten los siguientes métodos:

  • None (predeterminado): No se utiliza ninguna firma.

  • HMAC_SHA1: Utiliza el algoritmo HMAC-SHA1.

signatureText

String

Firma digital, que es un valor HmacSha1 calculado a partir de la URL del webhook, la clave de firma y el evento del mensaje. Ejemplo: 4mOdwflN1CgxxxxxxxuipuCYYWk=.

Ejemplo de cuerpo de la solicitud

{
"messageEvent":{
    "submitterName":"xxx",
    "submitterUid":"167382665015xxxx",
    "category":"ticket",
    "event":"Succeeded",
    "eventTime":1625630049930,
    "message":"[Data Management DMS] Webhook test, code: 144619 ",
    "module":"data change",
    "receivers":[{"name":"xxx1","uid":"167382665015xxxx"},{"name":"xxx2","uid":"167382665016xxxx"}],
    "targetUsers":[{"name":"xxx1","uid":"167382665015xxxx"},{"name":"xxx2","uid":"167382665016xxxx"}],
    "taskName":"Webhook test"
    },
"signatureMethod":"HMAC_SHA1",
"signatureText":"4mOdwflN1Cg5NdM2XPuipuCYYWk="
 }

Ejemplo de respuesta

{"root":"","success":true}                   //Success
{"root":"error message","success":false}     //Failure

Verificación de firma

Si configuró una clave de firma, utilice el siguiente código para verificar la firma.

// Verifies the signature of the incoming message
public void callback(String message) {
    JSONObject jsonObject = JSONObject.parseObject(message, Feature.OrderedField);
    String webhookUrl = "Your configured webhook URL";
    String signatureKey = "Your configured signature key";
    String origin = webhookUrl + signatureKey + JSON.toJSONString(jsonObject.getJSONObject("messageEvent"));
    // The signature from the DMS message
    String signatureText = jsonObject.getString("signatureText");
    // The signature calculated on your end
    String expectedSignatureText = signatureByHmacSha1(origin, signatureKey);
    assert Objects.equals(signatureText, expectedSignatureText);
}
public String signatureByHmacSha1(String origin, String key) {
    final String charset = "UTF-8";
    String result = "N/A";
    try {
        SecretKey secretKey = new SecretKeySpec(key.getBytes(charset), "HmacSHA1");
        Mac mac = Mac.getInstance("HmacSHA1");
        mac.init(secretKey);
        result = Base64.getEncoder().encodeToString(mac.doFinal(origin.getBytes(charset)));
    } catch (Exception ex){
    }
    return result;
}

Ejemplo de receptor de webhook

Cree un script de eco simple para probar su endpoint de webhook y ver la carga útil del evento.

  1. Guarde el siguiente script como print_http_body.rb.

    require 'webrick'
    server = WEBrick::HTTPServer.new(:Port => ARGV.first)
    server.mount_proc '/' do |req, res|
      puts req.body
    end
    trap 'INT' do
      server.shutdown
    end
    server.start
  2. Elija un puerto no utilizado, como 8000, y ejecute el script: ruby print_http_body.rb 8000.

  3. En la consola de DMS, configure la URL del webhook; por ejemplo, http://my.host:8000/. Para obtener más información, consulte Configure your personal information and notification methods.

    Si su servidor requiere autenticación básica HTTP, incluya el nombre de usuario y la contraseña en la URL. Por ejemplo:

    http://userName:password@my.host:8080/project/test-job
  4. En el cuadro de diálogo Modify notification method, haga clic en Test junto a la URL de su webhook. Su servidor recibirá una notificación de prueba de DMS.

    El servidor recibe una notificación similar al siguiente ejemplo:

    {
    "messageEvent":{
        "submitterName":"xxx",
        "submitterUid":"167382665015xxxx",
        "category":"ticket",
        "event":"Succeeded",
        "eventTime":1625630049930,
        "message":"[Data Management DMS] Webhook test, code: 144619 ",
        "module":"data change",
        "receivers":[{"name":"xxx1","uid":"167382665015xxxx"}],
        "targetUsers":[{"name":"xxx1","uid":"167382665015xxxx"}],
        "taskName":"Webhook test"
        },
    "signatureMethod":"HMAC_SHA1",
    "signatureText":"4mOdwflN1Cg5NdM2XPuipuCYYWk="
     }
    127.0.0.1 - - [20/Apr/2021:20:07:47 CST] "POST / HTTP/1.1" 200 0