繁体   English   中英

在Twitter4j中验证用户?

[英]Validate user in Twitter4j?

有什么方法可以使用户输入用户名和密码并验证其帐户? 我这样做的原因是要确保用户实际上拥有该用户名,并且为此,他们必须具有密码。 是否可以通过任何方式验证其凭据并获取返回的布尔值(无论身份验证是否失败)?

像这样:

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

我不确定如何使用新的1.1 API做到这一点。

我想也许其他人对此会更好,但是作为前进的方向,我将只分享我的想法,这可能会帮助您解决问题。

我不认为返回boolean的方法就这么简单,因为默认情况下您无权访问用户帐户。 这在twitter4j主页上进行了描述,并且如果您正在开发Web应用程序,我认为您可以按照“ 使用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仅通过我进行身份验证

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

希望它能帮助您前进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM