2010-09-09 89 views
3

我正在申请一个Twitter客户端。这意味着它通过OAuth连接到Twitter。我将我的应用程序注册到Twitter并获得了我所有的密钥,但是现在我不知道如何将我的应用程序与Twitter关联起来。我在下面做了一些代码。请帮助我..如何使用我的android应用程序中的Oauth登录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()); 

在此先感谢。

+0

我通过使用搜索功能 – DonGru 2010-09-09 09:36:19

回答

1

如果完整的OAuth Web重定向不方便,您可以尝试使用Twitter's xAuth service method将一组Twitter凭据转换为OAuth访问令牌(一次这样做并保存令牌)。在移动应用程序上更容易,但您需要通过电子邮件[email protected]要求Twitter允许使用xAuth。

您还可以查看another question on StackOverflow了解更多信息。

如果您的问题是如何实际实现OAuth交互,您可能需要check out OAuth library information on Twitter和/或关于您正在使用的库的文档。

8

你有两种选择。第一个更容易。第二个更困难。

头号只是继续你离开的地方。 获得requestToken之后,您需要启动WebView并将URL指向requestToken.getAuthorizationURL()。用户将登录并选择是否允许访问他/她的帐户。接下来,如果他/她击中允许,将显示访问代码,用户必须复制/粘贴到您自己的应用程序中。您将使用该密钥getOAuthAccessToken()(我认为,我使用了后面描述的难题)来获取应该永久存储在某个地方的身份验证令牌。此时您已通过身份验证。

第二个也继续你从哪里减去一个细节... twitter.getOAuthRequestToken(REDIRECT_URL)。 必须先在您的Twitter开发者帐户中设置redirect_url。然后遵循与第一步相同的步骤,不同之处在于您的webview需要进行自定义。您需要在WebView上使用setWebViewClient(),并创建一个扩展WebViewClient的新类。在WebViewClient的onPageStarted内部,检查网址是否以您的返回网址开头。然后拿到OAuth信息:

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

使用oauth_verifiertwitter.getOAuthAccessToken()让你的令牌。

+0

得到了一些体面的答案让我说第一种方法去...现在我有两个问题...我如何登录/注销....和我们永久保存的令牌,正如你在第一种方法中所说的那样;下一次当我打开我的应用程序,我应该重复的方法或只是使用这个保存的令牌,以及如何? – Farhan 2011-02-14 12:53:08

+0

很好的答案!请考虑检查这是正确的答案! – Codevalley 2011-05-21 12:58:34

相关问题