Twitter ist eigentlich als Broadcast-Medium aufgebaut, was erstmal keine Erstellung von direkten Nachrichten an Benutzer vorsieht. Das Versenden von direkten Nachrichten ist jedoch an Benutzer möglich, die einem selbst folgen. Durch das aktive Folgen eines Benutzers als Vorraussetzung für den Nachrichtenversand wird das Spamen somit aktiv verhindert.
Aktuell besteht lediglich die Möglichkeit durch “wahlloses” Folgen von Benutzern und Hinweisen auf eigene Produkte und Dienstleistungen im Profil und Meldungen auf sich aufmerksam zu machen. Aus meiner Sicht ist dieses Grundkonzept, abgesehen von ein paar negativen Beispielen, Grund für die problemlose Nutzung des Dienstes, der ansonsten durch Spam, Werbung und andersartige Zwangsnachrichten schnell unbenutzbar wäre.
Nun zum Versenden und Empfangen von Nachrichten:
[code lang=”java”]package org.netways.api.twitter;
import java.util.List;
import twitter4j.DirectMessage;
import twitter4j.Twitter;
import twitter4j.TwitterException;
public class TwitterFunctions {
Twitter twitter;
public TwitterFunctions(String user, String password) {
twitter = new Twitter(user, password);
}
public void sendMessage(String user, String message) throws TwitterException {
twitter.sendDirectMessage(user, message);
}
public List receiveMessages() throws TwitterException {
List messages = twitter.getDirectMessages();
return messages;
}
}[/code]
Sollte der String beim Versenden die maximale Größe von 140 Zeichen überschreiten, so wird der Rest abgeschnitten.
[code lang=”java”]package org.netways.api.twitter;
public class TwitterApi {
/**
* @param args
*/
public static void main(String[] args) {
try {
TwitterFunctions tf = new TwitterFunctions("netways", "password");
tf.sendMessage("netways", "Testmessage for API Blog-Series");
} catch (Exception e) {
System.err.println(e.toString());
}
}
}[/code]
Folgender Snip ermöglicht die Anzeige aller vorhandenen Messages:
[code lang=”java”]package org.netways.api.twitter;
import java.util.Iterator;
import java.util.List;
import twitter4j.DirectMessage;
public class TwitterApi {
/**
* @param args
*/
public static void main(String[] args) {
try {
TwitterFunctions tf = new TwitterFunctions("netways", "password");
DirectMessage dm;
List messages = tf.receiveMessages();
Iterator it = messages.iterator();
while(it.hasNext()) {
dm = it.next();
System.out.println("Sender " + dm.getSenderId());
System.out.println("Text " + dm.getText() + "\n");
}
} catch (Exception e) {
System.err.println(e.toString());
}
}
}[/code]
Output der Konsole:
Sender 17650139 Text Testmessage for API Blog-Series ........
Im nächsten Blogpost geht es um Replies, Mentions und was genau da eigentlich der Unterschied ist.
0 Comments