1

Oauth1.0を使用してAndroid用のTwitterクライアントを構築していますが、途中で立ち往生しています

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    OAuthConsumer consumer = new DefaultOAuthConsumer(
            "CONSUMER_KEY",
            "CONSUMER_CUSTOMER_KEY");

    OAuthProvider provider = new DefaultOAuthProvider(
            "https://api.twitter.com/oauth/request_token",
            "https://api.twitter.com/oauth/access_token",
            "https://api.twitter.com/oauth/authorize");

  Toast.makeText(getApplicationContext(), "fetching request token", Toast.LENGTH_SHORT).show();
  try 
  {
        String authUrl = provider.retrieveRequestToken(consumer, OAuth.OUT_OF_BAND);
    //  Toast.makeText(getApplicationContext(), authUrl, Toast.LENGTH_SHORT).show();

        String url = provider.retrieveRequestToken(consumer, OAuth.OUT_OF_BAND);
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_FROM_BACKGROUND);
        this.startActivity(intent); 


    }


  catch (OAuthMessageSignerException e) 
  {
        // TODO Auto-generated catch block
        e.printStackTrace();
  }
  catch (OAuthNotAuthorizedException e) 
  {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
  catch (OAuthExpectationFailedException e) 
  {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
  catch (OAuthCommunicationException e) 
  {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }



}

これで認証できるようになりましたが、ユーザー名とパスワードを入力するとすぐに、PINコードが表示され、リダイレクトは行われません。さて、私が欲しいのは、PINコードを入力せずにユーザーのツイートを表示することです!私は何をすべきか ?

前もって感謝します

4

1 に答える 1

1

最初のステップは、 dev.twitter.comのOOB認証に関するドキュメントを読むことです。

完全なOAuthプロセスを実際に処理できないアプリケーションの場合、Twitterは帯域外/ PINコード認証モード(oobとも呼ばれます)を提供します。

この認証フローは、ユーザーにPINコードが表示されることを除いて、完全なOAuthとほぼ同じです。

認証プロセスを完了するには、提供されたPINコードを入力するようにユーザーをアプリケーションに誘導する必要があります。リダイレクトが必要な場合は、サーバーコンポーネントで完全なoAuth1.0aフローを使用するか、コールバックURLをリンクにしてAndroidアプリケーションを開きます。

于 2011-10-10T20:16:52.830 に答える