Thomas Bandt

Über mich | Kontakt | Archiv

[ASP.NET] Trackbacks empfangen

Wie unschwer zu erkennen ist, habe ich mich von dasBlog verabschiedet, und setze bei neuen Projekten von nun an ausschließlich auf meine eigene Software. Letztes Mosaik im "Must have"-Puzzle war nun das Empfangen und Verarbeiten von sogenannten Trackbacks, also Nachrichten anderer Blogs an meines, wenn diese mich verlinkt haben.

Die grundlegenden Informationen erhält man hier:

Meine Quick'n-Dirty-Implementierung sieht wie folgt aus:

if (!string.IsNullOrEmpty((string)Request.Form["excerpt"]))
{

   Response.ContentType = "text/xml";

   Response.Write("");
   Response.Write("");

   try
   {

      // Übertragene Informationen
      string url = Request.Form["url"];
      string blog = Request.Form["blog_name"];
      string title = Request.Form["title"];
      string excerpt = Request.Form["excerpt"];

      // Blog-Kommentar erstellen
      BlogComment comment = new BlogComment();
      comment.Text = excerpt;
      comment.AuthorWebsite = url;
      comment.AuthorName = blog;
      comment.ArticleID = ArticleId;
      comment.IsActive = false;
      comment.IsTrackback = true;

      comment.AuthorEmail = string.Empty;
      comment.AuthorIP = string.Empty;

      // Kommentar speichern
      EasyBase.Customer.DAL.BlogComments.AddNewComment(comment);

      // Infomail verschicken
      SendInfoMail(comment, "Trackback");

      // Output, alles ok
      Response.Write("0");

   }
   catch(Exception exc)
   {
      // Output, Fehler angeben
      Response.Write("1");
      Response.Write(string.Format("{0}", exc.Message));
   }

   Response.Write(""); 
   Response.End();

}

Ich habe keine Lust mich mit den einzelnen XML-Objekten zu beschäftigen und mühsam zu suchen, nur um 3 Zeilen XML auszuspucken ... also nicht wundern.

Nice to know: dabei habe ich übrigens die Erkenntnis gewonnen, dass man den Output tatsächlich auch mitten im Lifecycle manipulieren und ändern kann, sogar in einem Usercontrol *irgendwo* mittendrin im Ablauf. Im Endeffekt ein logisches Verhalten: solange noch nichts an den Client gesendet wurde, hat man freie Hand. Wie früher auch mit ASP.

Nice to know 2: Beim Testen des Ganzen mit einem eigenen Testformular, immer dem ein name-Attribut geben, sonst erkennt ASP.NET den Postback nicht ... ich wäre fast verrückt geworden.

Das Ganze wurde erfolgreich mit Wordpress getestet, dasBlog will leider nicht - halt nicht die einzige Macke (keine Fehlermeldung, Trackback wird versandt, kommt aber nie an ...).

Kommentare

  1. GENiALi schrieb am Dienstag, 26. September 2006 07:46:00 Uhr:

    Ich hätte da noch ein Feature zum Einbauen.
    http://www.cocomment.com/
    Ich vermute, dass Ding braucht einwenig Code im Blog damit
    es tut. Das neue dasBlog bringt unterstützung für CoComment mit.
    Dieses Posting hier kann ich leider noch nicht tracken. :-)
  2. Thomas schrieb am Dienstag, 26. September 2006 10:59:00 Uhr:

    Bin ich nicht wirklich begeistert von, jeden Kommentar an eine zentrale Stelle zu schicken.

    1. Geht dadurch ein gehöriges Stück Anonymität verloren, und du machst dich noch gläserner, als du es jetzt schon bist.
    2. Entsteht so über kurz oder lang ein Monopol.


« Zurück  |  Weiter »