Kanal: Nachrichten schicken
Ohne Code: Discord-Adresse
Tools mit Discord-Option schicken mit dieser Adresse an Samy. Ohne Code und ohne Discord-Konto.
Viele Tools haben eine Einstellung „Discord-Benachrichtigung“ oder „Discord Webhook“. Dort trägst du statt der Discord-Adresse die Discord-Adresse deines Packlets ein. Samy nimmt die Meldung an, als wäre Samy Discord, und schickt sie als Push auf dein Handy.
Du schreibst dafür keinen Code und brauchst kein Discord-Konto.
In der App verbinden
Tipp beim Verbinden auf Integrationen und wähle Discord. Name und Tier sind schon ausgefüllt. Danach zeigt Samy statt Code gleich die fertige Adresse zum Kopieren; die trägst du in deinem Tool bei Discord ein.
Deine Adresse
https://api.packlets.app/v1/discord/<SAMY_KEY>Statt <SAMY_KEY> setzt du den Schlüssel deines Packlets ein, also den, der mit samy_ beginnt.
Der Schlüssel steht hier in der Adresse, weil diese Tools keinen eigenen Header schicken können. Behandle die ganze Adresse deshalb wie ein Passwort. Erzeugst du in der App einen neuen Schlüssel, gilt die alte Adresse sofort nicht mehr.
Wo das funktioniert
Überall, wo du eine beliebige Discord-Webhook-Adresse eintragen kannst. Zum Beispiel:
| Bereich | Tools |
|---|---|
| Überwachung | Uptime Kuma, Grafana, Healthchecks.io, Gatus, Netdata |
| Medien | Sonarr, Radarr, Lidarr, Jellyfin, Plex (über Tautulli), Overseerr |
| Server | Proxmox, Watchtower, Unraid, TrueNAS |
| Code und Deploys | GitHub Actions, GitLab, Coolify |
| Automatisierung | n8n, Make, Home Assistant |
Einige Tools prüfen, ob die Adresse mit https://discord.com/api/webhooks/ beginnt. Dort geht es nicht; nimm dann die ntfy-Adresse oder die Slack-Adresse, falls das Tool sie anbietet.
Schnell testen
curl https://api.packlets.app/v1/discord/<SAMY_KEY> \
-H "Content-Type: application/json" \
-d '{"content":"**Backup** fehlgeschlagen auf [server-1](https://status.example.com)"}'Wie Discord antwortet Samy mit 204 ohne Inhalt. Im Packlet-Protokoll steht der Aufruf mit „Discord:“ davor.
Was Samy übernimmt
Samy versteht die üblichen Discord-Formate und macht daraus eine normale Nachricht:
| Discord | In Samy |
|---|---|
content | Text der Nachricht |
**fett**, # Überschrift, - Punkt | wie in Samy |
[Beschriftung](https://…) | Beschriftung im Text. Der erste Link wird zum Link der Nachricht. |
*kursiv*, ~~durch~~, `Code`, ||Spoiler|| | nur der Text |
Erwähnungen wie @everyone oder <@123> | fallen weg |
Zeitstempel wie <t:1700000000:R> | Datum und Uhrzeit |
embeds[].title (sonst author.name) | Titel; weitere Embeds als fette Zeile |
embeds[].url | Link der Nachricht |
embeds[].description | Absatz |
embeds[].fields | Liste „Name: Wert“ |
embeds[].footer.text | kleiner Absatz am Ende |
embeds[].image oder thumbnail | Bild der Nachricht |
embeds[].color in Rot | Priorität high |
flags: 4096 (leise Nachricht) | Priorität silent |
Link-Knöpfe in components | bis zu 3 Knöpfe, die den Link öffnen |
Formular mit payload_json=<json> | wie JSON |
username, avatar_url und tts lässt Samy weg; Name und Bild kommen vom Packlet. Zu lange Texte werden gekürzt, Links ohne https fallen weg.
Antworten
| Status | Antwort | Bedeutung |
|---|---|---|
204 | leer | Gespeichert, der Push ist unterwegs. |
200 | JSON mit id | Wie 204, wenn die Adresse mit ?wait=true endet. |
400 | JSON mit code 50006 | Kein Text gefunden, weder in content noch in embeds. |
401 | JSON mit invalid_key | Schlüssel falsch oder Packlet entfernt. |
429 | JSON mit rate_limited | Zu viele Aufrufe. Es gilt dasselbe Limit wie bei POST /v1/push. |
Grenzen
- Dateien (Uploads mit
multipart/form-data) nimmt Samy nicht an. Bilder gehen als Link inembeds[].image. - Knöpfe öffnen nur Links. Knöpfe, die deinem Tool antworten, gibt es mit
POST /v1/pushund einem Webhook. - Nachrichten bearbeiten oder löschen (
PATCH/DELETEauf die Webhook-Adresse) gibt es nicht.