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