我正在使用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();
}
}
现在我已经能够使用此功能进行授权,但只要输入我的用户名和密码,就会出现密码并且不会发生重定向!我想要的是在不输入密码的情况下显示用户的推文!我该怎么办?
先谢谢
答案 0 :(得分:1)
第一步是阅读dev.twitter.com
上有关OOB身份验证的文档对于真正无法处理完整OAuth流程的应用程序 Twitter也提供带外/ PIN码验证模式 被称为oob。
此身份验证流程与完整OAuth几乎完全相同 而不是被引导回您的网站,用户被呈现 使用PIN码。
您需要将用户定向到您的应用程序,以输入提供的PIN码以完成身份验证过程。如果要重定向,请将完整的oAuth1.0a流与服务器组件一起使用,或者使回调URL成为打开Android应用程序的链接。