2011-01-05 68 views
0

我需要给Twitter与我的Android应用程序整合,这是我的代码(基于this):Twitter的整合对于Android应用

package com.anta40.oauthsetup; 

import twitter4j.Twitter; 
import twitter4j.TwitterException; 
import twitter4j.TwitterFactory; 
import twitter4j.http.AccessToken; 
import twitter4j.http.RequestToken; 
import twitter4j.Status; 
import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.Toast; 
import java.util.List; 

public class OAuthSetup extends Activity { 
Twitter twitter; 
RequestToken requestToken; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String CONSUMER_KEY = "xxxxxxxxxx"; 
    String CONSUMER_SECRET = "yyyyyyyyyyyyyyyyyyyy"; 

    try { 
     twitter = new TwitterFactory().getInstance(); 
     twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); 
     RequestToken requestToken = twitter.getOAuthRequestToken(); 
     AccessToken accessToken = null; 
     String url = requestToken.getAuthorizationURL(); 
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
     startActivity(intent); 
    } 
    catch (TwitterException e){ 
     e.printStackTrace(); 
    } 
} 

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    Uri uri = intent.getData(); 

    try { 
     String verifier = uri.getQueryParameter("oauth_verifier"); 
     AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier); 
     String token = accessToken.getToken(); 
     String secret = accessToken.getTokenSecret(); 
     displayTimeLine(token, secret); 
    } 
    catch (TwitterException e){ 
     e.printStackTrace(); 
    } 
} 

@SuppressWarnings("deprecation") 
void displayTimeLine(String token, String secret) { 
    if (null != token && null != secret) { 
     List<Status> statuses = null; 
     try { 
      twitter.setOAuthAccessToken(token, secret); 
      statuses = twitter.getFriendsTimeline(); 
      Toast.makeText(this, statuses.get(0).getText(), Toast.LENGTH_LONG) 
       .show(); 
     } catch (Exception ex) { 
      Toast.makeText(this, "Error:" + ex.getMessage(), 
        Toast.LENGTH_LONG).show(); 
      Log.d("Main.displayTimeline",""+ex.getMessage()); 
     } 

    } else { 
     Toast.makeText(this, "Not Verified", Toast.LENGTH_LONG).show(); 
    } 
} 

}

现在,而不是使用的WebView,怎么能我使用Dialog输入密码的Twitter用户名&?

回答

1

你不能。 Twitter将只允许第三方应用程序使用宣誓现在进行身份验证。

那么,让我澄清一下,你可以把一个对话框,让用户输入用户名/密码,但Twitter不再提供任何API。

你可以找到关于该主题在这里更多的信息:http://dev.twitter.com/pages/oauth_faq