TwitterHelper.java :  » UnTagged » socialconferenceproject » at » socialconference » web » server » util » Android Open Source

Android Open Source » UnTagged » socialconferenceproject 
socialconferenceproject » at » socialconference » web » server » util » TwitterHelper.java
package at.socialconference.web.server.util;

import java.util.List;

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.http.AccessToken;
import twitter4j.http.RequestToken;
//TODO what happens if a user denies access to webpage, we still try to get authentication with invalid authtoken?!
public class TwitterHelper {

  public final static String CONSUMER_KEY = "6VTFnlk9V4ZvGlhREQoKYg";
  public final static String CONSUMER_SECRET = "cMqcPBf8S9yU1E56n6MUDEhs5KQ33kRCfWehvqagjSE";

  @SuppressWarnings("unused")
  private boolean gotConnection=false;
  private AccessToken accessToken;
  private RequestToken requestToken;

  private Twitter twitter;
  
  public TwitterHelper() {
    this.twitter = new TwitterFactory().getInstance();
    this.twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
  }
  

  public String getAuthURL() {
    requestToken = null;
    try {
      requestToken = twitter.getOAuthRequestToken();
    } catch (TwitterException e) {
      if (401 == e.getStatusCode()) {
        e.printStackTrace();
        System.out.println("Hot der sekkl iatz 2mol gedruckt?");
        return "stress nit";
      } else {
        e.printStackTrace();
      }
    }

    return requestToken.getAuthorizationURL();
  }
  /**
   * creates AccessToken AND gets an authorized instance of Twitter!
   * @param token
   * @param tokenSecret
   * @return
   */
  public void createAccToken(String token, String tokenSecret) {
    accessToken = new AccessToken(token, tokenSecret);
    
    TwitterFactory factory = new TwitterFactory();
    twitter = factory.getOAuthAuthorizedInstance(
        CONSUMER_KEY, CONSUMER_SECRET, accessToken);
    return;
  }

  /**
   * as soon as user has pin this method is called and an access token should
   * be created and ev. saved in DB for every user.
   * 
   * @param pin
   */
  public Integer createAccToken(String pin) {
    try {
      if (pin.length() > 0) {
        accessToken = twitter.getOAuthAccessToken(requestToken, pin);
        return 1;
      } else {
        accessToken = twitter.getOAuthAccessToken();
        return 1;
      }
    } catch (TwitterException te) {
      if (401 == te.getStatusCode()) {
        te.printStackTrace();
        System.out.println("#####Fehler, i kriag AccessToken nit -createAccessToken!");
        return -2;
      } else {
        System.out.println("#####Fehler mit accessToken (pin?)");
        te.printStackTrace();
        return -1;
      }
    }catch(IllegalStateException ies){
      System.out.println("#####Fehler mit accessToken, no token available");
      ies.printStackTrace();
      return -3;
    }

  }

  /**
   * gimme id and i will follow you
   * 
   * @param id
   * @return
   */
  public Integer follow(int id) {
    try {
      twitter.createFriendship(id);
      return 1;
    } catch (TwitterException e) {
      if (403 == e.getStatusCode()) {
        System.out.println("-----Already friends -follow!");
        return 2;
      } else if(401 == e.getStatusCode()){
        System.out.println("-----App Access Denied -follow?!");
        return -2;
      }else {
        e.printStackTrace();
        return -1;
      }
    }
  }
  
  /**
   * gimme id and i will unFollow you
   * 
   * @param id
   * @return
   */
  public Integer unFollow(int id) {
    try {
      twitter.destroyFriendship(id);
      return 1;
    } catch (TwitterException e) {
      if (403 == e.getStatusCode()) {
        System.out.println("-----never been friends -unfollow?");
        return 2;
      }else if(401 == e.getStatusCode()){
        System.out.println("-----App Access Denied -unfollow?!");
        return -2;
      } else {
        e.printStackTrace();
        return -1;
      }
    }
  }

  /**
   * getting timelines of all the friends
   * they get cut down to timelines of conferences int the SCwebServiceImpl
   * @param id
   * @return
   */
  // TODO nur timelines von den conferencen holen, andere rausschneiden!
  public List<Status> getTimelines() {
    List<Status> statuses = null;
    try {
      statuses = twitter.getFriendsTimeline();
    } catch (TwitterException e) {
      if(401 == e.getStatusCode()){
        System.out.println("-----App Access Denied getTimelines?!\n");
        return null;
      }
      e.printStackTrace();
    }
    
    return statuses;
  }

  public AccessToken getAccessToken() {
    return accessToken;
  }
  
  public int[] getFriends(){
    int[] ids=null;
    try {
      ids =twitter.getFriendsIDs().getIDs();
    } catch (TwitterException e1) {
      if(401 == e1.getStatusCode()){
        System.out.println("-----App Access Denied -getfriends?!\n");
        return null;
      }
      e1.printStackTrace();
    }
    return ids;
    
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.