2010-09-09 88 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

相關問題