我成功获得了所有凭据(Oauth_token,Oauth_verifier
)。
有了它,我尝试将文本发布到Twitter帐户,但它始终失败,并显示错误消息“未发现身份验证挑战”
我找到了一些像
这样的解决方案“自动检查时区”, “导入最新的twitter4j库”等。
但检查后仍然无法正常工作。
有没有人可以告诉我。
代码如下所示
public static void updateStatus(final String pOauth_token,final String pOauth_verifier) {
new Thread() {
public void run() {
Looper.prepare();
try {
TwitterFactory factory = new TwitterFactory();
AccessToken accessToken = new AccessToken(pOauth_token,pOauth_verifier);
Twitter twitter = factory.getInstance();
twitter.setOAuthConsumer(Cdef.consumerKey, Cdef.consumerSecret);
twitter.setOAuthAccessToken(accessToken);
if (twitter.getAuthorization().isEnabled()) {
Log.e("btnTwSend","인증값을 셋팅하였고 API를 호출합니다.");
Status status = twitter.updateStatus(Cdef.sendText + " #" + String.valueOf(System.currentTimeMillis()));
Log.e("btnTwSend","status:" + status.getText());
}
} catch (Exception e) {
Log.e("btnTwSend",e.toString());
}
};
}.start();
}
答案 0 :(得分:0)
“未发现身份验证质疑”
我认为您在代码中缺少访问令牌密钥。这就是你得到这个例外的原因。
请尝试以下操作:
ConfigurationBuilder configurationBuilder;
Configuration configuration;
// Set the proper configuration parameters
configurationBuilder = new ConfigurationBuilder();
configurationBuilder
.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
configurationBuilder
.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
// Access token
configurationBuilder.setOAuthAccessToken(ACCESS_TOKEN);
// Access token secret
configurationBuilder
.setOAuthAccessTokenSecret(ACCESS_TOKEN_SECRET);
// Get the configuration object based on the params
configuration = configurationBuilder.build();
// Pass it to twitter factory to get the proprt twitter instance.
twitterFactory = new TwitterFactory(configuration);
twitter = twitterFactory.getInstance();
// use this instance to update
twitter.updateStatus("Your status");
答案 1 :(得分:0)
我终于找到了原因。
我认为参数名为'oauth_token','oauth_verifier'是accessstoken的成员, 但事实并非如此。
我只需要再通过一种方法来获得正确的密钥。
这种方式需要'oauth_token','oauth_verifier'才能获得accessstoken。
此代码必须在下面再添加一个代码:
mAccessToken = mTwitter.getOAuthAccessToken(REQUEST_TOKEN,OAUTH_VERIFIER);