更改应用权限后的 Twitter4j OAuth "Bad Authentication data" 代码 215
Twitter4j OAuth "Bad Authentication data" code 215 after changing app permissions
几个月来我已经能够验证多个 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
根据错误消息和一些 google 搜索,只要在未经身份验证的情况下发出请求,这个错误似乎就是 运行。但是我正在验证。此外,每当我以任何方式更改密钥时,它都会给我一个关于无效或过期令牌的完全不同的错误(错误 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。有什么想法可以让我重新开始工作吗?谢谢
问题已解决。不知道为什么会这样,但我尝试重新验证其他帐户,现在可以了。不确定 Twitter 端是否存在问题或其他问题,我认为我没有以任何方式更改影响该系统的任何代码。
几个月来我已经能够验证多个 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
根据错误消息和一些 google 搜索,只要在未经身份验证的情况下发出请求,这个错误似乎就是 运行。但是我正在验证。此外,每当我以任何方式更改密钥时,它都会给我一个关于无效或过期令牌的完全不同的错误(错误 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。有什么想法可以让我重新开始工作吗?谢谢
问题已解决。不知道为什么会这样,但我尝试重新验证其他帐户,现在可以了。不确定 Twitter 端是否存在问题或其他问题,我认为我没有以任何方式更改影响该系统的任何代码。