2012-10-24 36 views
1

一直試圖使用twitter4j發佈幾天的推文現在沒有運氣,我想要做的是讓一個人在他們的時間線上發佈他們的新的最高分從應用程序在結束時回合。這裏是我的代碼twitter4j沒有發現身份驗證挑戰

  @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_tweetr); 
    Button tweetr = (Button)findViewById(R.id.tweetr); 

    //create a new twitter configuration using user details 
    tweetTwitter = new TwitterFactory().getInstance(); 
    tweetTwitter.setOAuthConsumer(TWIT_KEY, TWIT_SECRET); 


     //create a twitter instance 
    // tweetTwitter = new TwitterFactory(twitConf).getInstance(); 



    tweetr.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 


      dt.execute(); 

     } 
    }); 



} 


public class TweetTask extends AsyncTask<Object, Void, String> { 
    @Override 
    protected String doInBackground(Object... values) { 
     /* try { 
      //requestToken = tweetTwitter.getOAuthRequestToken(TWITTER_CALLBACK_URL); 
     } catch (TwitterException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(requestToken.getAuthenticationURL()))); 
     */ 
     try { 
      requestToken = tweetTwitter.getOAuthRequestToken(TWITTER_CALLBACK_URL); 
      String authUrl = requestToken.getAuthenticationURL(); 
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl))); 
     } catch (TwitterException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


     return null; 
    } 


    @Override 
    protected void onPostExecute(String result) { 
     Log.d("URI", "DONE"); 
     super.onPostExecute(result); 
    } 




} 



@Override 
protected void onResume() { 
    super.onResume(); 
    final Uri uri = getIntent().getData(); 
    if(uri != null){ 

       Log.d("URI", uri.toString()); 

       Thread th = new Thread(){ 
        public void run(){ 
         try { 
          String verifier = uri.getQueryParameter("oauth_verifier"); 
          String oauthToken = uri.getQueryParameter("oauth_token"); 

          RequestToken reqToken = tweetTwitter.getOAuthRequestToken(oauthToken,verifier); 


          AccessToken accessToken = tweetTwitter.getOAuthAccessToken(reqToken); 
          String token = accessToken.getToken(), secret = accessToken.getTokenSecret(); 

         } catch (TwitterException ex) { 
          Log.e("Main.onNewIntent", "" + ex.getMessage()); 
         } 


        }}; 
        th.start(); 
     }else 
     Log.d("URI", "FAILED");   


    } 

}

這是我的錯誤打印出

10-23 15:35:18.661: D/TWIT ER(2392): No authentication challenges foundRelevant discussions can be found on the Internet at: 

回答

1

指Twitter4J

javadoc
In order to get access acquire AccessToken using xAuth, you must apply by sending an email to [email protected] â€」 all other applications will receive an HTTP 401 error. 
+0

哦~~,但仍有辦法不用xAuth就可以做到這一點 – kabuto178

相關問題