Twitter Development – Replies und Mentions

twitter-tUm mit anderen Benutzern und deren Tweets zu interagieren gibt es bei Twitter so genannte Replies bzw. Mentions. Der Begriff Mention ist seit März 2009 in Gebrauch. Twitter reagierte auf die Tatsache, dass häufig mehr als ein Benutzer pro Nachricht angesprochen wurde, z.B. sitze im Zug mit @BenutzerA und @BenutzerB. Verbunden damit ist der Hinweis auf den anderen Benutzer somit auch nicht mehr am Anfang der Nachricht und erfordert das Parsing der ganzen Mitteilung.
Für Nutzer besteht der Vorteil von Mentions darin, auch die Nachrichten zu verfolgen, die nicht ausschließlich an sie gerichtet sind aber inhaltlich beziehen. Da die Ermittlung in der API quasi fertig ist, kombiniere ich in folgendem Beispiel zwei API-Calls um die ermittelte Tweets mit Nutzer- und Profilinformationen anzureichern.

package org.netways.api.twitter;
import java.util.List;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
public class TwitterFunctions {
Twitter twitter;
public TwitterFunctions(String user, String password) {
twitter = new Twitter(user, password);
}
public List getMentions() throws TwitterException {
List mentions = twitter.getMentions();
return mentions;
}
public Status getStatus(long id) throws TwitterException {
Status status = twitter.showStatus(id);
return status;
}
}

Mit den ermittelten Mentions suchen wir danach die Ursprungsnachricht:

package org.netways.api.twitter;
import java.util.Iterator;
import java.util.List;
import twitter4j.Status;
import twitter4j.TwitterException;
import twitter4j.User;
public class TwitterApi {
/**
* @param args
*/
public static void main(String[] args) {
try {
TwitterFunctions tf = new TwitterFunctions("netways", "password");
Status status;
User user;
List statusList = tf.getMentions();
Iterator it = statusList.iterator();
while(it.hasNext()) {
status = it.next();
user = status.getUser();
System.out.println("Sender: " + user.getName());
System.out.println("Screen: " + user.getScreenName());
System.out.println("Location: " + user.getLocation());
System.out.println("Message: " + status.getInReplyToStatusId());
try {
System.out.println("Original: " + tf.getStatus(status.getInReplyToStatusId()).getText());
} catch(TwitterException te) {
System.err.println(te.toString());
}
System.out.println("Text: " + status.getText() + "\n");
}
} catch (Exception e) {
System.err.println(e.toString());
}
}
}

Output der Konsole:

Sender: Sebastian Duschinger
Screen: jackhuaberbauer
Location: Nürnberg / Nuremberg / Bavaria
Message: 2440420942
Original: Treten Sie ein und schauen Sie sich ruhig um: http://digg.com/u17EMH
Text: @netways nice office ;)
........

Durch die Kombination der verschiedenen API-Calls und das durchgängige ID-System für Nachrichten und Personen, können Mentions zu einem Post ermittelt werden oder einfach auch das Antwortverhalten anderer Benutzer auf eigene Tweets untersucht werden.
Der nächste Blogpost widmet sich der Suche von Tweets.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startet er das wöchentliche Lexware-Backup und investiert seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinem Sohn.