Mit Java twittern

Da Twitter ja gerade stark in Mode ist, will ich an dieser Stelle mal ein kleines Beispiel bringen wie man mit Java automatisiert twittern kann. Ich nutze das z.B. um bei http://twitter.com/weinfreund über die neusten Aktivitäten, wie neue Weingüter, Weine, Forenbeiträge usw., bei weinfreund.de zu informieren.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Serializable;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
 
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
public class TwitterService implements Serializable
{
	private static final long	serialVersionUID	= 9080041366457990472L;
	private static final Log  log = LogFactory.getLog(TwitterService.class);
	private String user;
	private String passwort;
 
	public TwitterService()
	{
		super();
	}
 
	public TwitterService(String user, String passwort)
	{
		super();
		this.user = user;
		this.passwort = passwort;
	}
 
	public void post(String message)
	{
		try
		{
			URLConnection connection = null;
			String credentials = this.user + ":" + this.passwort;
			String encodecredentials = new sun.misc.BASE64Encoder().encode(credentials.getBytes());
 
			URL url = new URL("http://twitter.com/statuses/update.xml");
			String encodedData = URLEncoder.encode(message, "UTF-8");
 
			connection = url.openConnection();
 
			connection.setRequestProperty("Authorization", "Basic " + encodecredentials);
			connection.setDoOutput(true);
 
			OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
			out.write("status=" + encodedData);
			out.close();
 
			BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
			String line;
			while ((line = in.readLine()) != null)
			{
				log.debug(line);
			}
			in.close();
 
		}
		catch (Exception e)
		{
			log.error(e.getMessage(), e);
		}
	}
 
	public void setUser(String user)
	{
		this.user = user;
	}
 
	public void setPasswort(String passwort)
	{
		this.passwort = passwort;
	}
}
Die Klasse TwitterService läßt sich nun einfach mittels Spring in benötigte Klassen injizieren.

1 Comment

  1. Longboard

    Danke für diese Anregung. Ich werde direkt mal versuchen das umzusetzen. Das hört sich wirklich nach Web 2.0 an.

    Reply

Leave a Reply