2011-03-17 25 views
5

Android uygulamamla tweet göndermenin bir yolunu arıyordum, ancak bulduğum her şey işe yaramıyor.Android API ile bir Tweet gönderin

Twitter'ın API'sinin anlaşılması çok kolay olmadığını itiraf etmeliyim, ancak kodum çok uzun değil ve nerede olduğumu görmüyorum.

Elbette
public class PartagerTwitter extends Activity { 

    private CommonsHttpOAuthConsumer httpOauthConsumer; 
    private OAuthProvider httpOauthprovider; 
    public final static String consumerKey = XXX; 
    public final static String consumerSecret = XXX; 
    private final String CALLBACKURL = "myapp://twitactivity"; 
    private Twitter twitter; 

    @Override 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     try { 
      httpOauthConsumer = new CommonsHttpOAuthConsumer(consumerKey, consumerSecret); 
      httpOauthprovider = new DefaultOAuthProvider("https://twitter.com/oauth/request_token", 
        "https://twitter.com/oauth/access_token", 
      "https://twitter.com/oauth/authorize"); 
      String authUrl = httpOauthprovider.retrieveRequestToken(httpOauthConsumer, CALLBACKURL); 

      this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl))); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    protected void onNewIntent(Intent intent) { 

     super.onNewIntent(intent); 
     Uri uri = intent.getData(); 
     Log.i("test", uri.toString()); 
     if (uri != null && uri.toString().startsWith(CALLBACKURL)) { 
      String verifier = uri.getQueryParameter(oauth.signpost.OAuth.OAUTH_VERIFIER); 
      try { 
       httpOauthprovider.retrieveAccessToken(httpOauthConsumer, verifier);  
       twitter = new TwitterFactory().getInstance(); 
       twitter.setOAuthConsumer(consumerKey, consumerSecret); 

       RequestToken requestToken = twitter.getOAuthRequestToken(CALLBACKURL); 
       AccessToken accessToken = twitter.getOAuthAccessToken(requestToken); 
       String token = accessToken.getToken(), 
       secret = accessToken.getTokenSecret(); 

       accessToken = new AccessToken(token,secret); 
       Twitter twitter = new TwitterFactory().getOAuthAuthorizedInstance(consumerKey,consumerSecret,accessToken); 
       twitter.updateStatus("My First Status Update"); 
      } catch (Exception e) { 
       e.printStackTrace(); 

      } 
     } 
    } 
} 

, benim anahtarları XXX değildir:

Bu benim kodudur. Ve başka bir soru, giriş yaptıktan sonra Twitter penceresini kapatmak ve etkinliğimi ön plana çıkarmak mümkün mü?

cevap

5

Android uygulamasından Twitter'a göndermek için eksiksiz bir uçtan uca kılavuz için lütfen the following blog post'a bakın.

Ayrıca, çalışan bir Android örneğini Github'da içerir.

0

Twitter dev sitesinde okuma/yazma izni ile uygulamanızı oluşturun, uygulamanız için erişim belirteci oluşturun.

statü

public static void main(String[] args) { 

    String CONSUMER_KEY = "YOUR_CONSUMER_KEY"; 
    String CONSUMER_SECRET = "YOUR_CONSUMER_SECRET"; 
    String ACCESS_SECRET = "YOUR_ACCESS_SECRET"; 
    String ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"; 

    // Consumer 
    Twitter twitter = new TwitterFactory().getInstance(); 
    twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); 

    // Access Token 
    AccessToken accessToken = null; 
    accessToken = new AccessToken(ACCESS_TOKEN, ACCESS_SECRET); 
    twitter.setOAuthAccessToken(accessToken); 

    // Posting Status 
    Status status = null; 
    try { 
     status = twitter.updateStatus("YOUR_STATUS"); 
    } catch (TwitterException e) { 
     e.printStackTrace(); 
    } 
    System.out.println("Successfully updated the status: " 
      + status.getText()); 
} 
güncelleştirmek için aşağıdaki kodu kullanabilirsiniz