Poster sur WordPress depuis une Application Java

Pour poster sur WordPress, tout le monde sait que l’on peut le faire en passant par le panneau d’administration de son blog. Vous connaissez peut-être aussi des programmes qui vous permettent de poster directement sur votre blog, sans avoir à lancer votre navigateur web. Une liste de tels programmes est disponbile sur le site de WordPress.

En fait, ces applications peuvent publier des billets et interagir avec votre blog grâce à un script particulier, intégré aux blogs WordPress. Ce script PHP s’appelle xmlrpc.php et permet de communiquer via HTTP en échangeant des structures JSON. Autrement dit, pour qu’une de vos applications puisse interagir avec votre blog, il suffit qu’elle communique avec ce fameux script.

Dans le cas d’une application Java, plusieurs options sont possibles.
Personnellement, je n’avais pas envie de me prendre la tête pour décortiquer toutes les structures de données de l’API WordPress. Je me suis donc tourné vers une librairie Java qui fournit une API propre (et à peu près claire). Cette librairie, c’est WordPress-Java.

Il y a quelques exemples disponibles sur le site.
Je me permets ici d’en rajouter un de ma composition.

import java.net.MalformedURLException;

import net.bican.wordpress.Page;
import net.bican.wordpress.Wordpress;
import redstone.xmlrpc.XmlRpcArray;
import redstone.xmlrpc.XmlRpcFault;

/**
 * @author Vincent Zurczak
 */
public class WordPressDemo {	
	
	/**
	 * Publishes the given posts on the blog. 
	 */
	public static void publishOnBlog() {

		String username = "mon-nom-d'utilisateur";
		String pwd = "mon-mot-de-passe";
		String xmlRpcUrl = "http://mon-adresse-de-blog/xmlrpc.php";

		try {
			Page newPost = new Page();

			newPost.setTitle( "Le titre de mon post" );
			newPost.setExcerpt( "Un résumé de mon billet" );
			newPost.setMt_keywords( "mot clé 1, mot clé 2" ); // Tags
			newPost.setMt_allow_comments( 1 ); // Allow comments
			newPost.setMt_allow_pings( 0 ); // No ping
			newPost.setDescription( "Le contenu de mon post, avec des liens, etc." );

			XmlRpcArray cats = new XmlRpcArray();
			cats.add( "Technique" );
			newPost.setCategories( cats ); // Post categories

			Wordpress wp = new WordPress( username, pwd, xmlRpcUrl );
			wp.newPost( newPost, true );

		} catch( MalformedURLException e ) {
			e.printStackTrace();

		} catch( XmlRpcFault e ) {
			e.printStackTrace();
		}
	}
}

Après, vous pouvez faire des trucs plus avancés.
Mais les tags, les catégories et les éléments utilisés ici sont les plus courants.

Publicités

About this entry