RSS in Chat einbinden

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);
}
In den Nachrichten müssen gewisse Sonderzeichen codiert/escaped werden (z.B. darf kein " vorkommen), da sonst das JSON kaputt geht.
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.
 

heavygale

Benutzer
Mitglied seit
02. Jun 2012
Beiträge
315
Punkte für Reaktionen
2
Punkte
24
Bisher sendet RSS2Chat nur den Titel eines Eintrages aus den RSS-Feeds, verlinkt mit der entsprechenden URL, in den Chat. Ich habe gesehen, dass du Feeds von kill-the-newsletter.com abonniert hast. Ich vermute, dass dort dann der besagte Newsletter als Text im RSS-Feed landet, sodass dieser ebenfalls in den Chat gesendet werden müsste. Ist das korrekt?
Dann sollten wir uns überlegen, ob es mehr Sinn macht eine Option anzubieten, dass bei einem Abonnement auch der Feed-Text mitgesendet wird, oder ob einfach immer der Text mitgesendet werden soll, wenn der Feed-Eintrag keinen Link hat. Zweiteres würde das ganze simple halten, es wäre weiterhin beim Abonnieren nur Webhook und RSS-Feed einzugeben - wenn wir aber auch später noch über Filter-Optionen nachdenken, dann kann man auch diese Option direkt schon konfigurierbar anbieten.
 

FrankSiegburg

Benutzer
Mitglied seit
20. Mai 2017
Beiträge
32
Punkte für Reaktionen
0
Punkte
0
Wie die Newsletter im Feed landen kann ich Dir bisher noch nicht sagen, dazu muss erst ein neuer rauskommen. Bis jetzt ist ja immer nur die Bestätigungsaufforderung gekommen. Die titelt dann immer mit kill-the-newsletter.com, aber sieh selbst, sende einen Screenshoot mit.

Screenshot.jpg
 

heavygale

Benutzer
Mitglied seit
02. Jun 2012
Beiträge
315
Punkte für Reaktionen
2
Punkte
24
Ok, dan warten wir mal ab (oder ich teste es demnächst mal selbst), und wenn es nicht geht, lege ich nochmal Hand an. :cool:
 

heavygale

Benutzer
Mitglied seit
02. Jun 2012
Beiträge
315
Punkte für Reaktionen
2
Punkte
24
Ich habe kill-the-newsletter.com jetzt mal selbst ausprobiert mit dem Eregbnis, dass nur ein Link zur Startseite des Dienstes chat auftauchte. Der Inhalt des Newsletters selbst wurde aber nicht übertragen. Ich habe das Script also entsprechend angepasst: Wird nun erkannt, dass die URL vom neuen Eintrag im RSS-Feed mit der Startseite des Feed-Anbieters übereinstimmt, so wird davon ausgegangen, dass die eigentliche News im RSS-Feed-Eintrag selbst steckt und der Inhalt wird in den Chat übertragen, anstatt wie bisher nur einen Link zu chatten.

EDIT:
...außerdem habe ich den Dienst übersetzt: Je nach Browsereinstellung wird die Seite nun auf deutsch oder english angezeigt. Wer eine Übersetzung in eine weitere Sprache anbieten möchte, kann sich gerne bei mir melden.
 
Zuletzt bearbeitet:

FrankSiegburg

Benutzer
Mitglied seit
20. Mai 2017
Beiträge
32
Punkte für Reaktionen
0
Punkte
0
Seit gestern Abend kommen keine neuen Nachrichten mehr über den Service. Kann das an den Änderungen liegen?
 

heavygale

Benutzer
Mitglied seit
02. Jun 2012
Beiträge
315
Punkte für Reaktionen
2
Punkte
24
Ich habe alle von dir abonnierten Feeds manuell aufgerufen, bei keinem davon gibt es einen neuen Beitrag von heute. Ich selbst habe heute schon eine Nachricht erhalten (siehe auch die Statistik auf https://rss2chat.boolshit.de/ im Footer -> Heute 1 Nachricht gesendet.), also habe ich gestern wohl nichts kaputt programmiert. :cool:
Beim Prüfen der Feeds ist mit allerdings aufgefallen, dass einige der von dir Abonnierten Feeds nur einen Eintrag haben, der scheinbar regelmäßig mit neuen Terminen aktualisiert wird. Bisher werden Änderungen an den Einträgen nicht erfasst und es wird nur eine Nachricht gesendet, wenn es einen neuen Eintrag gibt. Für solche Feeds, die nur einen regelmäßig aktualisierten Eintrag führen, müsste ich also das System so abändern, dass auch Änderungen erfasst und übertragen werden. Wäre das denn in deinem Sinne, immer wenn sich dieser Eintrag ändert, den gesamten Eintrag nochmals in den Chat übertragen zu bekommen?
 

FrankSiegburg

Benutzer
Mitglied seit
20. Mai 2017
Beiträge
32
Punkte für Reaktionen
0
Punkte
0
Du meinst wahrscheinlich die Termine der Ratssitzungen. Habe die als Experiment mal eingebunden. Eigentlich haben wir die im Kalender. Werde die voraussichtlich wieder löschen, so dass es wenig Sinn macht da Arbeit reinzustecken.

Bezüglich der Aktualisierung der Feeds: Auf Ratsblatt.de habe ich heute zwei neue Artikel eingestellt, diese sind auch im Feed zu sehen: http://ratsblatt.de/feed
Leider werden sie aber nicht übertragen.
 

heavygale

Benutzer
Mitglied seit
02. Jun 2012
Beiträge
315
Punkte für Reaktionen
2
Punkte
24
Offenbar wurde das Abonnement von ratsblatt.de automatisch beendet - so wie es passiert, wenn der Feed oder der Webhook mehrfach nicht abgerufen werden kann. War ratsblatt.de oder deine DiskStation kurzzeitlig nicht erreichbar oder überlastet? Für dich sind Stand jetzt noch 16 Abonnements eingetragen. Ich habe die Anzahl erlaubter Fehler jetzt testweise deutlich erhöht, sodass ich einen Blick darauf haben kann ob/wo häufig Fehler auftreten und was der Grund dafür ist. Außerdem wird der Fehlerzähler nun täglich zurückgesetzt (bisher geschah das nur wenn es einen neuen Eintrag im Feed gab, der erfolgreich im Chat übertragen wurde).

EDIT:
Ich habe mal noch auf meine ToDo-Liste aufgenommen, eine Nachricht in den Chat zu senden, wenn ein Abonnement autom. beendet wird, weil der RSS-Feed nicht abrufbar ist. Dann bekommt man das wenigstens mit. ^^
Sollte ein Abonnement autom. beendet werden, weil die Webhook-URL nicht abrufbar is, so kann ich eine entsprechende Nachricht aber natürlich nicht in den Chat senden.
 

FrankSiegburg

Benutzer
Mitglied seit
20. Mai 2017
Beiträge
32
Punkte für Reaktionen
0
Punkte
0
OK, das kann sein, konnte heute eine Zeit lang nicht auf die DS zugreifen. Wahrscheinlich war das in der Zeit. Dann trage ich den Feed wieder ein. Aber wie bekomme ich heraus ob noch weitere Feeds betroffen sind?
 

heavygale

Benutzer
Mitglied seit
02. Jun 2012
Beiträge
315
Punkte für Reaktionen
2
Punkte
24
Ok, das sind natürlich Erfahrungswerte, die ich erst noch sammeln muss, um die Fehlertoleranz korrekt zu justieren.
Ich sende dir eine Liste der aktiven Abonnements für deine Diskstation. :p
 

FrankSiegburg

Benutzer
Mitglied seit
20. Mai 2017
Beiträge
32
Punkte für Reaktionen
0
Punkte
0
Vielleicht könntest Du es so machen, dass der Versand bei einer Fehlermeldung für x-Stunden aussetzt und es dann noch mal versucht wird. Und nach y-Versuchen fliegt der Feed raus.
 

heavygale

Benutzer
Mitglied seit
02. Jun 2012
Beiträge
315
Punkte für Reaktionen
2
Punkte
24
So ähnlich ist es bereits umgesetzt, bisher war aber nach 50 Minuten schon Schluss - jetzt sind es vorläufig mal 4 Stunden.
Aktuell droht dein Abonnement 1ed7d460ab09ffe72180453147038f0ba21d9d25 beendet zu werden - hast du hierzu möglicherweise den Webhook gelöscht?
 

FrankSiegburg

Benutzer
Mitglied seit
20. Mai 2017
Beiträge
32
Punkte für Reaktionen
0
Punkte
0
Já, das kann sein. Habe alle Webhooks zu den Ratsterminen gelöscht. Hatte dazu eigentlich auch die Abos gelöscht, aber vielleicht habe ich dieses vergessen. Wenn es Dir beim programmieren hilft kann ich Dir gerne ein Benutzerkonto auf der DS einrichten. In diesem Fall bitte ich Dich nur mir per PN eine Mailadresse zu nennen, die ich dort eintragen kann.
 

heavygale

Benutzer
Mitglied seit
02. Jun 2012
Beiträge
315
Punkte für Reaktionen
2
Punkte
24
Kein Problem, wollte dich nur informieren, nicht dass wieder etwas verschindet, was du noch haben wolltest.
Die problematischen Feeds kann ich zur Not auch mit meinem Chat testen. :cool:
 

FrankSiegburg

Benutzer
Mitglied seit
20. Mai 2017
Beiträge
32
Punkte für Reaktionen
0
Punkte
0
Ansicht in der Android-App

Gibt es vielleicht auch die Möglichkeit die Ansicht auf der Android-App zu verbessern? Sieht bisher nicht so attraktiv aus, siehe Screenshot. Meine damit nicht die Abo-Bestätigung, sondern den Artikel darunter.

Screenshot_2017-05-29-21-49-09.jpg
 

heavygale

Benutzer
Mitglied seit
02. Jun 2012
Beiträge
315
Punkte für Reaktionen
2
Punkte
24
Ja das ist mir auch schon aufgefallen, dort werden die von Synology selbst beschriebenen Format-Regeln nicht ausgewertet.
Aber entweder es sieht im Browser gut aus, oder ich lasse alle Formatierungen weg, um es eher an die App anzupassen.
Würde ich so aktuell als Bug auf Seiten von Synology ansehen.
 

heavygale

Benutzer
Mitglied seit
02. Jun 2012
Beiträge
315
Punkte für Reaktionen
2
Punkte
24
Gibt es vielleicht auch die Möglichkeit die Ansicht auf der Android-App zu verbessern?
Mit dem neuen Update von heute passt es. :cool:

EDIT:
Muss mich korrigieren, die Links passen jetzt. Fett, kursiv und unterstrichen geht weiterhin nicht - aber das ist nicht so tragisch wie die zuvor nicht korrekt angezeigten Links.
 
Zuletzt bearbeitet:

FrankSiegburg

Benutzer
Mitglied seit
20. Mai 2017
Beiträge
32
Punkte für Reaktionen
0
Punkte
0
Das Update habe ich eingespielt, heute gegen 12.00 Uhr. Und um 13.50 Uhr kamen die letzten News. Vermute, das da etwas nicht stimmt. Auf https://rss2chat.boolshit.de/ werden derzeit auch nur 22 Abos angegeben. Ich meine es waren heute Mittag noch 24, aber sicher bin ich mir nicht.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat