如何在我的安卓应用中使用Oauth登录Twitter?

3

我正在制作一款Twitter客户端应用程序。这意味着它将使用OAuth与Twitter连接。我已经在Twitter上注册了我的应用程序并获得了所有密钥,但现在我不知道如何将我的应用程序与Twitter连接起来。下面是我写的一些代码,请帮帮我。

Twitter twitter=new TwitterFactory().getInstance();
twitter.setOAuthConsumer(Consumer key, Consumer secret);
RequestToken requestToken = twitter.getOAuthRequestToken();
AccessToken accessToken=null;
Log.i("Acces Token",accessToken.getToken());     
Log.i("Acces Tokensec",accessToken.getTokenSecret());

提前感谢您。


我只是使用搜索功能就得到了一些不错的答案。 - DonGru
2个回答

8

你有两个选择。第一个更简单,第二个更困难。

第一种选择只需要从你上次离开的地方继续进行。 当你获得了一个requestToken后,你需要启动一个WebView并将URL指向requestToken.getAuthorizationURL()。用户会登录并选择是否允许访问他/她的账户。接下来,如果他/她点击允许,则会显示一个访问代码,用户必须将其复制/粘贴到您自己的应用程序中。你将使用该密钥与getOAuthAccessToken()(我想,我使用了稍后描述的困难方式)来获取应该永久存储在某个地方的授权令牌。此时你已经通过身份验证。

第二种选择也是从你上次离开的地方继续进行,只是少了一个细节... twitter.getOAuthRequestToken(REDIRECT_URL)。 那个redirect_url必须首先在你的Twitter开发者帐户中设置好。然后按照第一种选择的相同步骤操作,只是你的webview需要进行自定义。你需要在你的WebView上使用setWebViewClient()并创建一个扩展WebViewClient的新类。在WebViewClient的onPageStarted中,检查URL是否以你的返回URL开头。然后获取oauth信息:

String oauth_token = uri.getQueryParameter("oauth_token");
String oauth_verifier = uri.getQueryParameter("oauth_verifier");

使用oauth_verifiertwitter.getOAuthAccessToken()一起来获取你的令牌。

好的答案...假设我采用第一种方法...现在我有两个问题...如何登录/注销...以及我们永久保存的令牌,如您在第一种方法中所述;下次打开我的应用程序时,我应该重复这种方法还是只是使用这个保存的令牌,怎么做? - Farhan
好的答案!请考虑将其选为正确答案!! - Codevalley

1

如果完整的OAuth网页重定向不方便,您可以尝试使用Twitter的xAuth服务方法将一组Twitter凭据转换为OAuth访问令牌(只需执行一次,并保存令牌)。对于移动应用程序来说更加容易,但您需要通过发送电子邮件至api@twitter.com向Twitter请求使用xAuth的权限。

您还可以查看StackOverflow上的另一个问题以获取更多信息。

如果您的问题是如何实际实现OAuth交互,您可能需要查看Twitter上的OAuth库信息和/或您已经使用的库的文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接