heavygale
Benutzer
- Mitglied seit
- 02. Jun 2012
- Beiträge
- 315
- Punkte für Reaktionen
- 2
- Punkte
- 24
PHP:
//Einfache Textnachricht:
send_chat('https://diskstation.example.com:1234/webhook-url', 'payload={"text": "Dies ist eine Testnachricht, gesendet über die Webhook-URL."}');
//Textnachricht mit einem Link:
send_chat('https://diskstation.example.com:1234/webhook-url', 'payload={"text": "Mit dem Dienst <https://rss2chat.boolshit.de/|RSS2Chat> kannst du RSS-Feeds in deinen Chat abonnieren."}');
//Eine Datei hochladen
send_chat('https://diskstation.example.com:1234/webhook-url', 'payload={"text": "Schau mal, das RSS2Chat-Logo", "file_url": "https://rss2chat.boolshit.de/res/icon.png"}');
//Die Funktion zum Senden der Nachricht:
function send_chat($webhook, $message)
{
$opts = array('http' =>
array(
'method' => 'POST',
'content' => $message,
),
'ssl' =>
array(
'verify_peer' => false //Deaktivieren der SSL-Zertifikatsüberprüfung
)
);
$context = stream_context_create($opts);
return file_get_contents($webhook, false, $context);
}
Beim Senden von Links musst du auch etwas aufpassen, was den Linktext angeht.
Die Syntax ist so: <HIER_DIE_URL|HIER_DER_LINKTEXT>
Der Linktext darf weder <, > noch | enthalten, sonst geht dieses Format kaputt und es kommt nicht heraus, was man möchte.
Die Funktion send_chat() gibt null zurück, wenn die Webhook-URL nicht abgerufen werden konnte. Konnte sie abgerufen werden, so gibt sie die JSON-Antwort der DiskStation zurück. Mit if(json_decode($antwort_von_send_chat)->success === true) kannst du prüfen, ob die Nachricht erfolgreich zugestellt wurde. Falls success!==true, so ist im JSON eine Fehlermeldung enthalten, die das Problem beschreibt.