Pingbacks und Trackbacks

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/pingback/
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:
<struct>
   <member>
      <name>sourceURI</name>
      <value><string>http://source.uri</string></value>
   </member>
   <member>
      <name>targetURI</name>
      <value><string>http://target.uri</string></value>
   </member>
</struct>
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);
<methodCall>
<methodName>pingback.ping</methodName>
<params>
 <param>
  <value>
   <struct>
    <member>
     <name>sourceURI</name>
     <value>
      <string>http://source.uri</string>
     </value>
    </member>
    <member>
     <name>targetURI</name>
     <value>
      <string>http://target.uri</string>
     </value>
    </member>
   </struct>
  </value>
 </param>
</params>
</methodCall>
Nun habe ich mir aber mal angeschaut, was Serendipity und WordPress so verschicken:
Serendipity liefert:
<?xml_version => "1.0"?>
<methodCall>
  <methodName>pingback.ping</methodName>
  <params>
    <param>
      <name>sourceURI</name>
      <value><string></string></value>
    </param>
      <name>targetURI</name>
      <value><string>http://target.uri</string></value>
    </param>
  </params>
</methodCall>
Es lässt also insbesondere die sourceURI leer und nutzt nicht die Struct-Struktur.
WordPress hingegen liefert:
<?xml version="1.0"?>
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://source.uri</string></value></param>
<param><value><string>http://target.uri</string></value></param>
</params></methodCall>
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.
Ich habe mich mit diesem Problem mal an das USENET gewandt, in der Hoffnung hier etwas Erleuchtung zu erfahren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *