Sie können SIGNL4-Alarme per Inbound-Webhook auslösen. Dies ist ein einfacher und zuverlässiger Weg zur Integration mit Ihren Backend-Systemen. Zu diesem Zweck haben wir einige Code-Beispiele aufgelistet, wie Sie Webhook-Anfragen an SIGNL4 senden können. Sie müssen hier entsprechend durch Ihr SIGNL4-Teamgeheimnis ersetzen und können je nach Bedarf zusätzliche Parameter zu den Alarm-Daten hinzufügen.
Informationen zum Setup der Webhooks findest du in unserer  Getting-Started-Dokumentation.

cURL
Bash Script
PowerShell
Node.js
Python
C#
Go
PHP
Ruby
Flutter / Dart

Du findest die Code-Beispiele auch auf GitHub: https://github.com/signl4/code-snippets

cURL
curl -X POST 'https://connect.signl4.com/webhook/{team-secret}' -H 'Content-Type:application/json' -d '{"Title":"Test Alert","Text":"Hello world."}'
Bash Script

# Send SIGNL4 alert from Bash

# SIGNL4 team secret
team_secret="team-secret"

# Alert data
data()
{
  cat <<EOF
{
  "Title": "Alert",
  "Message": "SIGNL4 alert from Bash Shell"
}
EOF
}

curl -d "$(data)" -H "Content-Type: application/json" "https://connect.signl4.com/webhook/$team_secret"
PowerShell

# Send SIGNL4 alert from PowerShell

# SIGNL4 team secret
$team_secret = ""
# Alert data
$data = @{
 "Title"="Alert"
 "Message"="SIGNL4 alert from PowerShell"
} | ConvertTo-Json -Depth 4

Invoke-RestMethod "https://connect.signl4.com/webhook/$team_secret" -Method POST -ContentType "application/json" -Body $data
Node.js

// Send SIGNL4 alert from Node.js

// Your SIGNL4 team secret
const teamSecret = 'team-secret'

const https = require('https')

// Alert data
const data = JSON.stringify({
    'Title': 'Alert',
    'Message': 'SIGNL4 alert from Node.js'
})

// SIGNL4 webhook URL
const options = {
  hostname: 'connect.signl4.com',
  port: 443,
  path: '/webhook/' + teamSecret,
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length
  }
}

const req = https.request(options, res => {
  console.log(`statusCode: ${res.statusCode}`)

  if (res.statusCode != 201) {
      // Error
      console.error('Error: ' + res.statusCode)
      return
  }

  // Success
  res.on('data', d => {
    process.stdout.write(d)
  })
})

// Error
req.on('error', error => {
  console.error(error)
})

req.write(data)
req.end()
Python

# Send SIGNL4 alert from Python

import requests

# Your SIGNL4 team secret
teamSecret = 'team-secret'

# SIGNL4 webhook URL
webhook_url = 'https://connect.signl4.com/webhook/' + teamSecret

# Alert data
alert_data = {
    'Title': 'Alert',
    'Message': 'SIGNL4 alert from Python'}

result = requests.post(url = webhook_url, json = alert_data)

if result.status_code == 201:
    # Success
    print(result.text)
else:
    # Error
    print('Error: ' + str(result.status_code))
C#

using System;
using System.IO;
using System.Net;
using System.Text;

// Send SIGNL4 alert from C#

// Your SIGNL4 team secret
string teamSecret = "team-secret";

// Alert data
string json = @"{  
'Title': 'Alert',  
'Message': 'SIGNL4 alert from C#'  
}"; 

sendSIGNL4Alert(teamSecret, json);

public static void sendSIGNL4Alert(string strTeamSecret, string strData)
{
    string url = "https://connect.signl4.com/webhook/" + strTeamSecret;

    try
    {
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
        request.Method = "POST";

        byte[] byteArray = Encoding.UTF8.GetBytes(strData);

        request.ContentType = "application/json";
        request.ContentLength = byteArray.Length;

        // Send the request
        Stream dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();

        // Get the response.
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Console.WriteLine(((HttpWebResponse)response).StatusDescription);

        using (dataStream = response.GetResponseStream())
        {
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();

            Console.WriteLine("Status Code: {0}", (int)response.StatusCode);
            Console.WriteLine(responseFromServer);

            if ((int)response.StatusCode == 201) {
                // Success
                Console.WriteLine("Success");
            }
            else {
                // Error
                Console.WriteLine("Error");
            }
        }

        response.Close();
    }
    catch (Exception e)
    {
        // Error
        Console.WriteLine("Error: " + e.ToString());
    }

}
Go
package main

import (
	"bytes"
	"fmt"
	"io/ioutil"
	"net/http"
)

// Send SIGNL4 alert from Go

func main() {
	// Your SIGNL4 team secret
	teamSecret := "team-secret"
	url := "https://connect.signl4.com/webhook/" + teamSecret

	// Alert data
	var jsonStr = []byte(`{
		"Title":"Alert",
		"Message": "SIGNL4 alert from Go"}`)
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		// Error
		fmt.Println("Error")
		panic(err)
	}
	defer resp.Body.Close()

	if resp.StatusCode == 201 {
		// Success
		fmt.Println("Success")
	} else {
		// Error
		fmt.Println("Error: " + resp.Status)
	}

	body, _ := ioutil.ReadAll(resp.Body)
	fmt.Println("response Body:", string(body))
}
PHP

<?php

// Send SIGNL4 alert from PHP

// Your SIGNL4 team secret
$teamSecret = 'team-secret';

$url = 'https://connect.signl4.com/webhook/' . $teamSecret;
 
// User cURL
$ch = curl_init($url);
 
// Alert data
$data = array(
    'Title' => 'Alert',
    'Message' => 'SIGNL4 alert from PHP'
);

$jsonData = json_encode($data);

// Send the request
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // No echo for curl_errno
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
 
//Execute the request
$result = curl_exec($ch);

if (!curl_errno($ch)) {
	$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
	if ($http_code == 201) {
		// Success
		echo $result . 'rn';
	}
	else {
		// Error
		echo 'Error: ' . $http_code . 'rn';
	}
}
else {
	// Error
	echo 'Errorrn';
}

curl_close($ch);

?>
Ruby


require 'net/http'
require 'uri'
require 'json'

# Send SIGNL4 alert from Ruby

# SIGNL4 team secret
team_secret = "team-secret"

# Alert data
alert_data = { "Title" => "Alert", "Message" => "SIGNL4 alert from Ruby" }.to_json

url = "https://connect.signl4.com/webhook/" + team_secret

res = Net::HTTP.post URI(url),
    alert_data,
    "Content-Type" => "application/json"

# Status
puts res.code
puts res.message

# Body
puts res.body

case res
when Net::HTTPSuccess, Net::HTTPRedirection
  if res.code == "201"
    # Success
    puts "Success"
  else
    # Error
    puts "Error1"
  end
else
  # Error
  puts "Error"
end
Flutter / Dart


  import 'dart:convert';
  import 'package:http/http.dart' as http;
  
  void main() {
    print('Sending SIGNL4 alert ...');
  
    sendRequest('SIGNL4 Alert from Dart.');
  }
  
  // Send alert
  Future sendRequest(String title) async {
    // SIGNL4 team secret
    String teamSecret = 'signl4-team-secret';
  
    final response = await http.post(
      Uri.parse('https://connect.signl4.com/webhook/' + teamSecret),
      headers: {
        'Content-Type': 'application/json',
      },
      body: jsonEncode({
        'title': title,
      }),
    );
  
    if (response.statusCode == 201) {
      // If the server did return a 201 CREATED response,
      // then parse the JSON.
  
      print(jsonDecode(response.body)['eventId']);
    } else {
      // If the server did not return a 201 CREATED response,
      // then throw an exception.
  
      print('Error: ${response.statusCode}');
  
      throw Exception('Failed to send alert.');
    }
  }