Pingbacks mit Serendipity empfangen
Wir hatten vor einiger Zeit die andere Richtung gelöst: Das setzen von Pingbacks auf Artikel in fremden Blogs, wenn man in Serendipity einen Artikel speichert. Das klappt seit einiger Zeit ja sehr stabil. Nun sehe ich, dass Max Leon in letzer Zeit einige Pingbacks von Artikeln in seinem WordPress Blog (z.B. in seinem aktuellem Blog Projekt) auf Artikel in meinem Serendipity Blog gesetzt hat. Die kamen jedoch nie hier an! Leon hat einfach den automatischen Mechanismus in WordPress zum setzen von Pingbacks benutzt, dieser scheitert also offenbar an Serendipity. Woran liegt das?
Wenn man einen Serendipity Artikel aufruft, so findet man in dem HTML Code (bei mir) zwei Angaben für eine URL, die einen Pingback abnehmen könnte:
<link rel="pingback"
href="http://blog.brockha.us/comment.php?type=pingback&entry_id=86" />
[..]
<link rel="pingback"
href="http://blog.brockha.us/serendipity_xmlrpc.php" />
Das ist schon einmal merkwürdig! Bei mir kommt die erste Angabe aus meinem Serendipity Template, die zweite Angabe wird vom XML-RPC Plugin produziert. Ich habe mir einen Pingback Tester gebaut, der an beide Links testweise Pingbacks absetzte. Das XML-RPC Plugin kann damit offenbar gar nichts anfangen, aber auch der erste Link, der eine Methode im S9Y Core für einen Pingback Empfang aufruft, liefert nur einen Fehler.
WordPress lädt einen Artikel, auf den es ein Pingback setzen will, und nimmt dann den ersten Pingback Link, den es finden kann, wie man in meinem Logfile sehen kann. Dies ist jener, der den Serendipity Core aufruft:
"GET /index.php?/archives/86-Saphire-Bar-im-Prenzlauer-Berg.html HTTP/1.1" 200 "WordPress/2.2.1"
"POST /comment.php HTTP/1.0" 200 0 "-" "Incutio XML-RPC -- WordPress/2.2.1"
Ich habe mir also den Code in Serendipity angesehen, der beim Aufruf des ersten Pingback Links ausgeführt wird. Dieser ist leider falsch bzw unvollständig. Der Code kann keinen validen Pingback erkennen, alle Pingback Versuche erhalten als Resultat einen Fehler und werden somit nicht in die Datenbank eingetragen. Ich habe diese Methode bei mir im Serendipity Core korrigiert. Außerdem habe ich sie deutlich erweitert, da bisher nur rudimentäre Informationen aus dem Pingback gezogen worden wären. Jetzt holt sich die Methode die aufrufende Seite und extrahiert zusätzliche Informationen, wie Titel des Artikels und einen Ausschnitt aus selbigem. Dies ist bei Pingbacks üblich, da diese (im Gegensatz zu Trackbacks) als einzige Information nur zwei URLs liefern: Die der beiden involvierten Artikel.
Nachdem dies erledigt war, musste ich noch die Smarty Methode zum Darstellen von Trackbacks erweitern, so dass diese auch Pingbacks darstellen kann. Bisher gab es eine Methode zum Darstellen von Pingbacks noch gar nicht.
Als letztes musste ich noch das AntiSpam Plugin von Serendipity ändern, so dass es Pingbacks wie Trackbacks behandelt, ansonsten wären die nun akzeptierten Pingbacks ungefiltert in die Datenbank von Serendipity gelangt.
Ich glaube, ich habe an alles gedacht, Serendipity unterstützt ab der Version 1.3, die ab heute im Berlios SVN liegt, auch Pingback Empfang. Ich hatte zuerst überlegt, einen Patch zu veröffentlichen, aber das ist dann doch zu viel geworden. Die ganze erweiterte Pingback/Trackback Funktionalität gibt es dann eben erst ab Version 1.3. Einen Anfang eines Patches, der zumindest schon mal Pingbacks annehmen kann, gibt es im Serendipity Forum.
Nun warte ich also gespannt auf den nächsten Pingback von Max! ![]()
Nachtrag 1: Garvin schreibt mir, dass ihm das Abholen der weiteren Artikel Informationen beim anderen Rechner Sorgen bereitet. Garvins Sorgen nehme ich immer sehr ernst. Ich hatte das zwar mit einem Timeout belegt, aber er sagt, dass man sich darauf bei PHP leider nicht so ganz verlassen kann. Dazu muss ich mir wohl noch etwas einfallen lassen. Irgendeine Konfiguration, mit der man das Einstellen kann, die bei der Standard Installation / Update erst einmal dieses Feature verhindert. Einfach eine Option in die Serendipity Konfiguration einbauen? Gibt es Ideen dazu?
Nachtrag 2: Es klappt immer noch nicht!
Max hat noch einmal einen groß angekündigten Pingback hierher gestartet, der wieder nicht bei mir ankam. Er beschwert sich im Kommentar zu Recht.. Muss ich dann wohl mal meinen WordPress Test Account reanimieren.. Aber merkwürdig, mein Pingback Tester verhielt sich nach Spezifikation und dessen Pingbacks kamen an. Bin mal gespannt, ob das nun ein spezielles Problem mit WordPress ist.. Aber danke noch einmal an Max!
Comments
Display comments as Linear | Threaded
Max Leon Dalheimer on :
Da schick ich dir schon ein so lang angekündigten Trackback und dann kommt er nicht an
http://www.blogformoney.de/?p=117
Grischa on :
Ja, schon gesehen.
Vielen Dank für den Versuch! Ich glaube ich werde jetzt mal meinen Test WordPress Account aktivieren, um mal zu sehen, was da eigentlich schief läuft.
Letzte Nacht war mein Server auch für kurze Zeit (ca. 1/2 Stunde höchstens) nicht zu erreichen, ich hoffe, der Versuch war nicht genau in der Zeit.
Und es war ein Pingback, kein Trackback, oder?
Mist..
Grischa on :
Oh! Ein Pingback von Max!
Komisch.. Auch Deines fällt in die IP Validation Falle. Wieso ist denn bei Dir der Code, der das Pingback schickt auf einer anderen IP als www.blogformany.de? Das ist ja merkwürdig..
Geschenkidee on :
Also ich komme mit deiner Anleitung bzw. Erklärung leider nicht so zurecht. Ich habe es gerade ein 2. MAl probiert und scheiter klaglos. Nix mit Pingbacks
Grischa on :
Welche Version von S9Y fährst Du denn? Der besprochene Pingback Support ist erst ab 1.3 enthalten.
Ismail on :
Bin über google hierher gestossen. Wollte mich auf jedne Fall für die Anleitung bedanken und mich hier verewigen.
Jessica on :
Konnt ebenfalls über Google den Weg hier her finden, auf der Suche nach Pingbacks. Vielen Dank für den hilfreichen Artikel. Liebe Grüße Jessi
Matthias on :
Auch ich bin durch Google auf die Super Anleitung gestoßen. Danke dafür.
Abderrahim on :
Vielen Dank für diese Anleitung.
Silvi on :
Vielen dank diese Anleitung hat mir sehr weitergeholfen.