2012-12-04 86 views
0

這是我目前的代碼,但我無法從我的回調中獲取訪問令牌,任何提示或提示將不勝感激。缺少訪問令牌

    @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(){ 
         AccessToken accessToken; 

         try { 
          String verifier = uri.getQueryParameter("oauth_verifier"); 
          String oauthToken = uri.getQueryParameter("oauth_token"); 




          accessToken = tweetTwitter.getOAuthAccessToken(verifier); 
          //String token = accessToken.getToken(), secret = accessToken.getTokenSecret(); 

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


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


    } 
     } 

回答

0

我不得不使用相同的requestToken,以獲得與我的應用程序的訪問,所以我不得不編輯清單文件中只允許有一個活動的情況下,從web視圖登錄面板返回後才能運行。這爲我解決了它。