Pingbacks in PHP? Genaues Format des XMLRPC?
Pingbacks in PHP? Genaues Format des XMLRPC?
am 10.09.2006 12:31:29 von Martin Stingl
Hallo zusammen,
ich befasse mich gerade mit Trackbacks und Pingsbacks bei Blogs.
Um das ganze richtig zu verstehen, schreibe ich gerade meine eigene
Blog-Software.
Ich habe dazu auf
http://meiert.com/de/publications/translations/hixie.ch/ping back/
eine schöne Beschreibung der Pingback-Technik gefunden. Soviel ich
sonst so gefunden habe, handelt es sich bei Trackback um eine Technik,
die hauptsächlich von Movable Type benutzt wird.
Aus diesem Grund möchte ich in meiner Blog-Software zunächst Pingbacks
implementieren.
Nun stoße ich auf folgendes Problem:
Laut der obigen Beschreibung ruft der Client den Pingback-Server mit
zwei Parametern auf: sourceURI und targetURI
Dort wird auch auf http://www.xmlrpc.com/spec verwiesen, um zu sehen,
wie genau das XML, was zwischen Client und Server ausgetauscht wird,
auszusehen hat. Dort ist nur ein Beispiel für einen Request mit
mehreren Parametern angegeben. Der Request müsste demnach
die Paramter so übergeben:
sourceURI
http://source.uri
targetURI
http://target.uri
Ein solches Konstrukt kann ich auch leicht mit der PHP-XMLRPC-Funktion
xmlrpc_encode_request() zusammenbauen:
$params = array ("sourceURI" => "http://source.uri", "targetURI" =>
"http://target.uri");
$request = xmlrpc_encode_request('pingback.ping', $params);
pingback.ping
sourceURI
http://source.uri
targetURI
http://target.uri
Nun habe ich mir aber mal angeschaut, was Serendipity und Wordpress so
verschicken:
Serendipity liefert:
"1.0"?>
pingback.ping
sourceURI
targetURI
http://target.uri
Es lässt also insbesondere die sourceURI leer und nutzt nicht die
Struct-Struktur.
Wordpress hingegen liefert:
pingback.ping
http://source.uri
http://target.uri
Es lässt also die Namen der Parameter weg.
Beides passt aber überhaupt nicht zu dem, was die PHP-Funktion
generiert, wenn man mehr als einen
Parameter übergibt. Auch passt es nicht zu dem, was ich auf
http://www.xmlrpc.com/spec gefunden habe.
Gibt es denn eine allgemeingültige Vorgehensweise für Pingbacks? Gibt es
dafür eine Referenz-Implementierung
in PHP?
Ich möchte nicht unbedingt ein großes zusätzliches PHP-Add-on
installieren müssen. Zur Not zimmere ich mir
das richtige Format selbst zusammen. Nur wüsste ich gerne, was denn nun
so das richtige ist ;-)
Wenn ich es selber mache, weiss ich wenigstens, was passiert. Die
XML-RPC Lücke in PHP zielte auf ein
extra Paket, wenn ich mich recht erinnere.
Wäre schön, wenn jemand etwas Licht in dieses Durcheinander bringen könnte.
Besten Dank,
Martin
Re: Pingbacks in PHP? Genaues Format des XMLRPC?
am 10.09.2006 13:32:02 von 68kmac
Martin Stingl wrote:
> Wordpress hingegen liefert:
Es ist schon eine Weile her, dass ich das implementiert habe, aber m.E.
macht WP das verkehrt. Ich habe jedenfalls bei uns eine Sonderbehandlung
für WordPress-Pingbacks drin ...
> Gibt es denn eine allgemeingültige Vorgehensweise für Pingbacks?
Die "offizielle" Spezifikation ist wohl
, allerdings verweist die
für solche Details auch nur auf die XML-RPC-Spezifikation.
>Gibt es dafür eine Referenz-Implementierung in PHP?
Sicher keine Referenz, aber Du kannst Dir ja mal meine Implementierung
ansehen (Senden[1], Empfangen[2]). Sie benutzt PEAR::XML_RPC und
interagiert jedenfalls problemlos mit WordPress (und das ohne Hack beim
Senden).
> Wäre schön, wenn jemand etwas Licht in dieses Durcheinander bringen könnte.
HTH
bye, Dirk
(X-Post zu de.alt.soc.blogs entfernt, da ich die nicht lese)
[1]
/lib-pingback.php?rev=1.7;content-type=text%2Fx-cvsweb-marku p;cvsroot=ge
eklog>
[2]
_html/pingback.php?rev=1.12;content-type=text%2Fx-cvsweb-mar kup;cvsroot=
geeklog>
--
http://www.geeklog.net/
Re: Pingbacks in PHP? Genaues Format des XMLRPC?
am 10.09.2006 14:10:55 von Ulf Kadner
Martin Stingl wrote:
> ich befasse mich gerade mit Trackbacks und Pingsbacks bei Blogs.
> Um das ganze richtig zu verstehen, schreibe ich gerade meine eigene
> Blog-Software.
> Ich habe dazu auf
> http://meiert.com/de/publications/translations/hixie.ch/ping back/
> eine schöne Beschreibung der Pingback-Technik gefunden. Soviel ich
> sonst so gefunden habe, handelt es sich bei Trackback um eine Technik,
> die hauptsächlich von Movable Type benutzt wird.
Das ist so nicht ganz korrekt. Trackback wurde als Teil von MT
entwickelt, findet aber heute nicht nur im MT-CMS, sondern in unzähligen
anderen Skripten seine Anwendung. Wird also nicht mehr nur hauptsächlich
in MTs verwendet.
> Aus diesem Grund möchte ich in meiner Blog-Software zunächst Pingbacks
> implementieren.
>
> Nun stoße ich auf folgendes Problem:
> Laut der obigen Beschreibung ruft der Client den Pingback-Server mit
> zwei Parametern auf: sourceURI und targetURI
Ich hab, bei meiner Implementierung alles wissenswerte aus folgenden
Script bezogen (Pingback-Server)
http://www.xiven.com/sourcecode/pingbackserver.php
Ist zwar nicht ganz so nach meinem Geschmack, aber erklärt durch Code
eigentlich sehr gut wies geht, bzw. was an an Daten fliest läst sich
leicht rausfinden.
> Dort wird auch auf http://www.xmlrpc.com/spec verwiesen, um zu sehen,
> wie genau das XML, was zwischen Client und Server ausgetauscht wird,
> auszusehen hat. Dort ist nur ein Beispiel für einen Request mit
> mehreren Parametern angegeben. Der Request müsste demnach
> die Paramter so übergeben:
>
>
>
> sourceURI
> http://source.uri
>
>
> targetURI
> http://target.uri
>
>
So ist es korrekt, nur halt als vollständiges XML
> $params = array ("sourceURI" => "http://source.uri", "targetURI" =>
> "http://target.uri");
> $request = xmlrpc_encode_request('pingback.ping', $params);
>
>
> pingback.ping
>
>
>
>
>
> sourceURI
>
> http://source.uri
>
>
>
> targetURI
>
> http://target.uri
>
>
>
>
>
>
>
Soweit korrekt...
> Nun habe ich mir aber mal angeschaut, was Serendipity und Wordpress so
> verschicken:
>
> Serendipity liefert:
>
> "1.0"?>
>
> pingback.ping
>
>
> sourceURI
>
>
> targetURI
unzulässiges XML (vor fehlt )
> http://target.uri
>
>
>
>
> Es lässt also insbesondere die sourceURI leer und nutzt nicht die
> Struct-Struktur.
Es ist schlicht nicht nutzbar was da als Request gesendet wird.
> Wordpress hingegen liefert:
>
>
>
> pingback.ping
>
> http://source.uri
> http://target.uri
>
>
> Es lässt also die Namen der Parameter weg.
Das ist zwar gültiges XML, aber WP ist ja auch nicht gerad für
Konformität bekannt. Halte dich erst mal an die von Dir bereit korrekt
erkannten Voraussetzungen. Wenn es dann zu evtl. Inkompatibilitäten mit
WP oder anderen System kommt must Dus halt für deren AQnsprüche
angleichen. Aber WP würde ich hier auf keinen Fall als Referenz hernehmen.
> Gibt es denn eine allgemeingültige Vorgehensweise für Pingbacks?
XML-RPC und Dein verlinktes Dokument ist hier das einzige was man
voraussetzen sollte. Aber es wird wohl am einfachsten sein auf ein
fertiges Packet alla Pear oder Zend-Framework u.a. zurück zu greifen. Da
bekommst Du bereits alles fertig und brauchst Dich um solche
Kleinigkeiten nicht weiter zu kümmern.
> dafür eine Referenz-Implementierung
> in PHP?
Referenzimplementierung glaube ich nicht, da es für Pingback keinen
direkten Standard gibt.
> Ich möchte nicht unbedingt ein großes zusätzliches PHP-Add-on
> installieren müssen.
Warum nicht? Pear oder andere Frameworks wurden entwickelt um Arbeit
abzunehmen. Must ja nicht unbedingt Pear nehmen. Es gibt genügend
Alternativen. z.B.: http://phpxmlrpc.sourceforge.net/
> Wenn ich es selber mache, weiss ich wenigstens, was passiert.
Ich denk Du weist es nicht? :-)
> XML-RPC Lücke in PHP zielte auf ein
> extra Paket, wenn ich mich recht erinnere.
Was meinst Du damit?
Mfg, Ulf
Re: Pingbacks in PHP? Genaues Format des XMLRPC?
am 19.09.2006 22:05:37 von Martin Stingl
Ulf Kadner schrieb:
[...]
> XML-RPC und Dein verlinktes Dokument ist hier das einzige was man
> voraussetzen sollte. Aber es wird wohl am einfachsten sein auf ein
> fertiges Packet alla Pear oder Zend-Framework u.a. zurück zu greifen. Da
> bekommst Du bereits alles fertig und brauchst Dich um solche
> Kleinigkeiten nicht weiter zu kümmern.
>
>> dafür eine Referenz-Implementierung
>> in PHP?
>
> Referenzimplementierung glaube ich nicht, da es für Pingback keinen
> direkten Standard gibt.
Gibt es denn wenigstens eine freie Blog-Software, die diesen Standard
richtig (im Sinne von konform) umsetzt?
Ob ich nun ein fertiges Paket nehme oder es selber schreibe, scheint mir
mittlerweile zweitrangig. Ich sehe das Hauptproblem darin, dass sich
anscheinend jedes Blog anders verhält, so dass es doch nicht richtig
funktioniert, wenn ich mich an den Standard halte ....
Viele Grüße,
Martin