2013-10-12 66 views
0

有沒有辦法讓用戶輸入他的用戶名和密碼並驗證他的帳戶?我的理由是確保用戶真正擁有該用戶名,爲此,他們必須擁有密碼。有沒有什麼辦法可以驗證他們的憑據並獲得返回的布爾值,無論身份驗證是否失敗?在Twitter4j中驗證用戶?

事情是這樣的:

if(validated) 
{ 
    // Your validated 
} 
else 
{ 
    // Authentication failed. 
} 

我不知道如何使用新的1.1的API做到這一點。

回答

0

我想別人可能會更好地瞭解這一點,但作爲一種前進的方式,我將分享我的想法,並可能幫助您解決問題。

我不認爲這是一個簡單的方法返回boolean,因爲你默認沒有訪問用戶帳戶。這在twitter4j主頁上有描述,如果您正在開發Web應用程序,我會假設您可以按照Sign in with Twitter下描述的示例進行操作。

如果它是一個原生的Java應用程序,我想你應該去OAuth解決方案,在Twitter API上註冊你的應用程序(獲取消費者密鑰/祕密)並授予訪問權限以驗證用戶。

基本上我認爲你最終將不得不在用戶與Twitter的登錄頁面交互就像從twitter4j在例子中看到:

// The factory instance is re-useable and thread safe. 
Twitter twitter = TwitterFactory.getSingleton(); 
twitter.setOAuthConsumer("[consumer key]", "[consumer secret]"); 
RequestToken requestToken = twitter.getOAuthRequestToken(); 
AccessToken accessToken = null; 
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
while (null == accessToken) { 
    System.out.println("Open the following URL and grant access to your account:"); 
    System.out.println(requestToken.getAuthorizationURL()); 
    System.out.print("Enter the PIN(if aviailable) or just hit enter.[PIN]:"); 
    String pin = br.readLine(); 
    try{ 
    if(pin.length() > 0){ 
     accessToken = twitter.getOAuthAccessToken(requestToken, pin); 
    }else{ 
     accessToken = twitter.getOAuthAccessToken(); 
    } 
    } catch (TwitterException te) { 
    if(401 == te.getStatusCode()){ 
     System.out.println("Unable to get the access token."); 
    }else{ 
     te.printStackTrace(); 
    } 
    } 
} 

你在這個問答一些額外的信息:Twitter4J Only Authenticates With Me

注您需要Twitter4J版本> = 3.0才能獲得API 1.1支持。

希望它能幫助你的前鋒。