Ich habe mal ein kleines Plugin geschrieben welches den WordPress-Atom-Feed mit der ActivityStream-Syntax erweitert.

 <entry>
  <id>https://notiz.blog/?p=1775</id>
  <author>
    <name>Matthias Pfefferle</name>
    <uri>https://notiz.blog</uri>
  </author>
  <...>
  <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
  <activity:object>
    <activity:object-type>http://activitystrea.ms/schema/1.0/blog-entry</activity:object-type>
    <activity:object-type>http://activitystrea.ms/schema/1.0/article</activity:object-type>
    <id>tag:notiz.blog,2009-07-13:/post/1775</id>
    <title type="html"><![CDATA[Matthias Pfefferle posted a new blog-entry]]></title>
    <link rel="alternate" type="text/html" href="https://notiz.blog/2009/07/14/webstandards-kolumne/" />
  </activity:object>
</entry>Code-Sprache: HTML, XML (xml)

Die Syntax ist dazu gedacht, dem Feed-Parser/Feed-Reader zu erklären um was für einen Eintrag es sich handelt. Bei WordPress sind die <entry />s ausschließlich Blogposts/Artikel…

<activity:object-type>http://activitystrea.ms/schema/1.0/blog-entry</activity:object-type>
<activity:object-type>http://activitystrea.ms/schema/1.0/article</activity:object-type>Code-Sprache: HTML, XML (xml)

…die gepostet wurden.

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>Code-Sprache: HTML, XML (xml)

Und für die Dienste wie NoseRub, die die Aktivität gerne in einen Satz packen, gibt’s das ganze auch noch in Prosa.

<title type="html"><![CDATA[Matthias Pfefferle posted a new blog-entry]]></title>Code-Sprache: HTML, XML (xml)

Das ActivityStream Schema definiert übrigens noch ’ne ganze Reihe an weiteren Objekten und Verben, die auf alle möglichen Aktionen im Netz passen. Falls ihr also noch welche findet, die zu WordPress passen könnten… lasst es mich wissen 😉

Es gibt leider aber auch ein paar Probleme mit der Syntax und diversen Feed-Readern, die das zweite <title /> im <activity-object /> mit interpretieren und dann beide Titel ausgeben… aber da ja auch MySpace und Facebook die ActivityStream-Syntax einsetzen ist dieser Fehler sicherlich bald bei jedem Feed-Reader behoben 😉

Viel Spaß beim ausprobieren!

Joss Winn hatte schon im Mai darüber berichtet, dass WordPress.com jetzt auch XMPP unterstützt:

Just some notes on how to get XMPP notifications from any wordpress.com blog. It’s an experimental service so might not work tomorrow 😉

…und es hat in der Tat am nächsten Tag nicht mehr funktioniert. Durch den ganzen Trubel um WordPress, RSS cloud und dem Echtzeitweb in den letzten Tagen, bin ich auch wieder auf den WordPress XMPP-Service aufmerksam geworden und er scheint mittlerweile relativ stabil zu laufen.

Es sollte eigentlich mit jedem Jabber-Client funktionieren der PubSub (XEP-0060) unterstützt:

  1. Zuerst einen neuen Jabber/XMPP-Account hinzufügen:
    • Jabber ID
      name@im.wordpress.com
      Der name ist der WordPress.com Benutzer-Name gefolgt von “@im.wordpress.com”.
    • Password
      Das WordPress.com Passwort.
    • Jabber Server/Host
      im.wordpress.com
    • Port
      5222 (Standard-Port)
  2. Dann den WordPress-Bot als Kontakt hinzufügen: „bot@im.wordpress.com
  3. Für alle weiteren Anweisungen einfach dem WordPress-Bot eine Nachricht mit „help“ schicken.
  4. Fertsch 🙂
XMPP on WordPress.com

Nachdem man mit dem Befehl „sub <wordpress-url>“ einen Blog abonniert hat bekommt man alle neuen Posts auf den Jabber-Client und wenn es der eigene Blog ist, kann man sogar über z.B. Adium neue Blog-Posts verfassen.

Großartig!

…wer braucht da noch PubSubHubBub und RSS cloud 🙂

Weiterführende Links:

Will Norris hat vorgestern ausführlich über die neuen Features seines WordPress-Plugins berichtet. Das wohl interessanteste Feature von wp-openid 3.0 ist der neue OpenID-Provider:

The next major release of wp-openid includes a built-in OpenID provider and delegation engine. This will certainly be the most exciting feature of this release for most people, so let me explain a bit how it works. Each authorized user on the WordPress blog will have an OpenID at the author posts URL (ie. http://example.com/author/admin). Authorization to use the OpenID provider is controlled based on user roles and is managed in the main OpenID settings page.

Das Plugin kann in zwei verschiedenen Modi betrieben werden. Multi-user erstellt aus jeder Autor-URL (z.B. http://example.com/author/admin/) eine OpenID während blog-owner für Private-Blogs mit nur einem Autor gedacht ist und die Home-URL zur OpenID (z.B. http://example.com) macht:

In multi-user, the default configuration, the server supports a feature in OpenID 2.0 called OpenID Provider driven identifier selection. What this means is that ANY user on that blog can enter the home URL as their OpenID, and the OpenID provider itself will make sure that the correct identifier is returned to the relying party. The final identifier will still be something like http://example.com/author/admin/, but the user only needs to enter example.com at a relying party. If you’ve used ever used Yahoo’s OpenID provider, then you’ve probably seen how this works.

Zwei weitere spannende Features sind die Hooks, als Schnittstelle für z.B. andere Plugins…

I haven’t sat down to document them all yet, but I’m adding in more hooks for other plugins to add functionality. Want to pull profile data from FOAF instead of sreg? No problem, now you have a hook you can implement. This makes everything in the plugin much more lightweight and “loosely joined” which is always good. All of the existing non-core OpenID functionality (like SREG) is currently using these hooks.

…und die Unterstützung des OpenID-Firefox-Plugins (welches übrigens auch mit der Version 2.x funktioniert) über das DiSo XRDS-Simple Plugin.

Ich habe das Plugin bisher nur einmal ausprobiert, da es noch einige kleine Fehler hat und die Admin-Oberfläche des OpenID-Providers noch gänzlich fehlt. Trotz dieser kleinen Fehler merkt man, dass sich Will Norris für diese Version sehr viel Zeit (die er sicherlich auch hatte) genommen hat und ich bin sehr gespannt auf die fertige Version.

Wer sich nochmal ausführlich mit den Features beschäftigen will, sollte unbedingt Will Norris‘ Artikel darüber lesen:

NoseRub hat ein WordPress-Plugin:

If you have an account on a social network site powered by NoseRub, i.e. identoo.com
this plugin provides a couple of widgets to show your lifestream your hCard, your contacts
and, on newer installations of NoseRub, your services.

You can also choose to use your weblog as an OpenID-URL, powered by your NoseRub account.

…außerdem wurde noch ne ganze Menge XFN verwendet 🙂

Mal schau’n was Dominik Schwind auf dem nächsten NoseRub-DevCamp so zaubert.

Die beste Methode sich mit einer Sache zu beschäftigen ist, einen sinnvollen Anwendungsfall zu schaffen… Bei dem „näher beschäftigen“ mit Ubiquity ist ein WordPress-Plugin rausgekommen 🙂

Das WordPress-Plugin erstellt eine Ubiquity-Suche für das eigene Weblog (Quellcode) mit dem Command „search-<Blog-Titel>“

ubiquity-wordpress-command.jpg

Das kann teilweise (wie im Falle meines Blogs: search-notizblog-a-private-weblog-written-by-matthias-pfefferle) ziemlich lang werden, was aber nicht weiter schlimm ist da auch schon der Anfang des Commands (z.B. search-notizblog) reicht…

Viel Spaß beim ausprobieren 🙂