我已经能够在几个月内验证多个Twitter帐户,但我只是更改了我的应用程序的权限以允许查看DM。之后,我重新认识了我的帐户,第一个工作正常,但任何其他帐户都没有。
我决定将消费者密钥,消费者密钥,访问令牌和访问令牌秘密打印到控制台。对于我的第一个帐户,没有空格,它们看起来正确。但是,在我允许直接消息之前,第二个帐户的访问令牌比任何访问令牌长10个字符。此外,每当我尝试进行身份验证时,都会收到此错误:
400:The request was invalid. An accompanying error message will explain why. This is the status code will be returned during version 1.0 rate limiting(https://dev.twitter.com/pages/rate-limiting). In API v1.1, a request without authentication is considered invalid and you will get this response.
message - Bad Authentication data.
code - 215
根据错误消息和一些谷歌搜索,似乎在没有进行身份验证的情况下发出请求时会运行此错误。但是我正在验证。此外,每当我以任何方式更改密钥时,它都会给出关于无效或过期令牌的完全不同的错误(错误89)。
这仅适用于其他帐户,而不是我验证的第一个帐户(第一个帐户完全按预期工作)。这是我正在运行的代码:
public class Tweeter {
private String consumerKey = null;
private String consumerSecret = null;
private String accessToken = null;
private String accessSecret = null;
private Twitter twitter = null;
public Tweeter(String consumerKey, String consumerSecret, String accessToken, String accessSecret) {
this.consumerKey = consumerKey;
this.consumerSecret = consumerSecret;
this.accessToken = accessToken;
this.accessSecret = accessSecret;
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey(consumerKey).setOAuthConsumerSecret(consumerSecret).setOAuthAccessToken(accessToken).setOAuthAccessTokenSecret(accessSecret);
TwitterFactory factory = new TwitterFactory(cb.build());
twitter = factory.getInstance();
Logger.log("\"" + factory.getInstance().getConfiguration().getOAuthConsumerKey() + "\"");
Logger.log("\"" + factory.getInstance().getConfiguration().getOAuthConsumerSecret() + "\"");
Logger.log("\"" + factory.getInstance().getConfiguration().getOAuthAccessToken() + "\"");
Logger.log("\"" + factory.getInstance().getConfiguration().getOAuthAccessTokenSecret() + "\"");
}
public String getConsumerKey() {
return consumerKey;
}
public String getConsumerSecret() {
return consumerSecret;
}
public String getAccessToken() {
return accessToken;
}
public String getAccessSecret() {
return accessSecret;
}
public Twitter getTwitter() {
return twitter;
}
}
这是我在我现在工作了几个月的项目中使用的相同代码,即使有一些相同的额外Twitter帐户也是如此。唯一改变的是应用程序权限现在允许我查看DM。任何想法我怎么能让这个再次工作?感谢
答案 0 :(得分:0)
问题解决了。不知道为什么会这样,但我试图重新认证其他帐户,现在就可以了。不确定Twitter的结尾是否存在问题,或者我不相信我已经改变了以任何方式影响该系统的任何代码。