我正在开发一款Android应用程序,它允许用户自己配置Twitter消费者密钥和秘密(未配置访问令牌和访问令牌密钥)。我想在显示登录页面之前验证如下所示的密钥和密码,但它会引发异常:
Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer(key, secret);
try {
User user = twitter.verifyCredentials(); // this line throws an exception
} catch (Exception e) {
e.printStackTrace();
}
例外是:
Twitter凭证验证fails.java.lang.IllegalStateException: 验证凭据丢失。看到 http://twitter4j.org/en/configuration.html了解详情
有没有办法验证没有访问令牌和访问令牌访问的消费者密钥和密钥?
答案 0 :(得分:6)
您遇到的异常消息非常清楚:
缺少身份验证凭据。
在尝试以编程方式访问Twitter API之前,您需要首先正确进行身份验证。仅使用setOAuthConsumer(key, secret)
不会设置/配置必要的访问令牌信息。需要提供这两种信息(提示:如果您对此感兴趣,http://api.jquery.com/unload/会概述 OAuth 身份验证的工作原理。
根据this introduction,您可以通过ConfigurationBuilder
实例初始化代码,如下所示:
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("*your-consumer-key*")
.setOAuthConsumerSecret("*your-consumer-secret*")
.setOAuthAccessToken("*your-access-token*")
.setOAuthAccessTokenSecret("*your-access-token-secret*");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
如果有效的 AccessToken / AccessTokenSecret ,您应该可以调用:
try {
User user = twitter.verifyCredentials();
// ... do further things....
} catch (Exception e) {
e.printStackTrace();
}
希望它有所帮助。