有没有办法让用户输入他的用户名和密码并验证他的帐户?我这样做的理由是确保用户真正拥有该用户名,并且为了做到这一点,他们必须拥有自己的密码。有什么方法可以验证他们的凭据并获得返回的布尔值,无论身份验证是否失败?
像这样的东西:
if(validated)
{
// Your validated
}
else
{
// Authentication failed.
}
我不确定如何使用新的 1.1 API 做到这一点。
有没有办法让用户输入他的用户名和密码并验证他的帐户?我这样做的理由是确保用户真正拥有该用户名,并且为了做到这一点,他们必须拥有自己的密码。有什么方法可以验证他们的凭据并获得返回的布尔值,无论身份验证是否失败?
像这样的东西:
if(validated)
{
// Your validated
}
else
{
// Authentication failed.
}
我不确定如何使用新的 1.1 API 做到这一点。
我想其他人可能更了解这一点,但作为一种前进的方式,我只会分享我的想法,它可能会帮助你解决你的问题。
我不认为作为返回 a 的方法那么简单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();
}
}
}
您在此 Q 中有一些其他信息:Twitter4J 仅与我一起验证
请注意,您需要Twitter4J
版本 >=3.0 才能获得 API 1.1 支持。
希望对你的前进有所帮助。