Twitter4j OAuth"错误验证数据"更改应用程序权限后的代码215

时间:2016-11-23 01:00:40

标签: oauth twitter4j

我已经能够在几个月内验证多个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。任何想法我怎么能让这个再次工作?感谢

1 个答案:

答案 0 :(得分:0)

问题解决了。不知道为什么会这样,但我试图重新认证其他帐户,现在就可以了。不确定Twitter的结尾是否存在问题,或者我不相信我已经改变了以任何方式影响该系统的任何代码。