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 码并且不会发生重定向!那么我想要的是在不输入密码的情况下显示用户的推文!我应该怎么办 ?

提前致谢

4

1 回答 1

1

第一步是阅读dev.twitter.com上有关 OOB 身份验证的文档

对于确实无法处理完整 OAuth 流程的应用程序,Twitter 提供了带外/PIN 码身份验证模式,也称为 oob。

此身份验证流程几乎与完整的 OAuth 相同,只是不会将用户引导回您的网站,而是向用户显示 PIN 码。

您需要将用户引导至您的应用程序以输入提供的 PIN 码以完成身份验证过程。如果您想要重定向,请使用带有服务器组件的完整 oAuth1.0a 流程,或者将回调 URL 设置为打开您的 android 应用程序的链接。

于 2011-10-10T20:16:52.830 回答