在 Twitter4j 中验证用户



有没有办法让用户输入他的用户名和密码并验证他的帐户?我这样做背后的原因是确保用户实际拥有该用户名,为此,他们必须拥有密码。有什么方法可以验证他们的凭据并获得返回的布尔值,无论身份验证是否失败?

像这样:

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

我不确定如何使用新的 1.1 API 执行此操作。

我想其他人可能更了解这一点,但作为一种前进的方向,我将分享我的想法,它可能会帮助您解决问题。

我认为作为返回boolean的方法并不那么简单,因为默认情况下您无权访问用户帐户。这在twitter4j主页上有描述,如果你正在开发一个Web应用程序,我假设你可以按照使用Twitter登录下描述的示例进行操作。

如果它是一个原生的java应用程序,我想你应该选择OAuth解决方案,在Twitter上注册你的应用程序(获取消费者密钥/秘密)并授予验证用户的访问权限。

基本上,我认为您最终会让用户与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();
    }
  }
}

你在这个Q中有一些额外的信息:Twitter4J只向我验证

请注意,您需要Twitter4J版本>=3.0 才能获得 API 1.1 支持。

希望它对你前进有帮助。

相关内容

  • 没有找到相关文章

最新更新