更改应用权限后的 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 端是否存在问题或其他问题,我认为我没有以任何方式更改影响该系统的任何代码。