Now instead of sending a message to my own account, let's do a real easy mod to send a Direct Message to a specific user Using the same app as before, the only changes needed are:
- import DirectMessage
- change from twitter.updateStatus(message) to twitter.sendDirectMessage(screenName, message)
import twitter4j.DirectMessage;
import twitter4j.Twitter
import twitter4j.TwitterFactory
import twitter4j.Status
import twitter4j.http.AccessToken
import twitter4j.http.RequestToken
import java.io.BufferedReader
import com.thoughtworks.xstream.XStream
try{
Twitter twitter = new TwitterFactory().getInstance();
// set key and secret that you get from Twitter app registeration at:
// http://dev.twitter.com/pages/auth#register
twitter.setOAuthConsumer("Your Consumer key", "Your Consumer secret");
// load access token if it exists
AccessToken accessToken = null
def tokenFile = new File("accessToken.xml")
if (tokenFile.exists()) {
def xstream = new XStream()
tokenFile.withInputStream { ins -> accessToken = xstream.fromXML(ins) }
twitter.setOAuthAccessToken(accessToken)
}
else {
// get the URL to request access to Twitter acct
RequestToken requestToken = twitter.getOAuthRequestToken();
String authUrl = requestToken.getAuthorizationURL()
System.out.println("Open the following URL and grant access to your account:");
System.out.println(authUrl);
// take the PIN and get access token
System.out.print("Enter the PIN:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String pin = ""
pin = br.readLine();
accessToken = twitter.getOAuthAccessToken(requestToken, pin);
// persist token
def xstream = new XStream()
xstream.classLoader = getClass().classLoader
new File("accessToken.xml").withOutputStream { out -> xstream.toXML(accessToken, out) }
}
String message = "from Groovy w/ token" + accessToken.getToken()
String screenName ="ScreenNameToSendTo"
DirectMessage directMessage = twitter.sendDirectMessage(screenName, message)
System.out.println("Direct message sent to " + directMessage.getRecipientScreenName());
} catch (Exception e) {
e.printStackTrace();
}What do you think? Leave a comment.


No comments:
Post a Comment