【问题标题】:twitter4j: getting credential errors even though i had set them?twitter4j:即使我已经设置了凭据错误?
【发布时间】:2011-10-04 14:45:43
【问题描述】:
package twitter4j.examples.tweets;

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;
import twitter4j.conf.*;

import java.io.IOException;

public final class UpdateStatus {

    public static void main(String[] args) throws IOException {

        String testPost = "hello from otc";
        String consumerKey = "key";
        String consumerSecret = "secret";
        String accessToken = "access";
        String accessSecret = "access_secret";

        ConfigurationBuilder cb = new ConfigurationBuilder();

        cb.setDebugEnabled(true)
            .setOAuthConsumerKey(consumerKey)
            .setOAuthConsumerSecret(consumerSecret)
            .setOAuthAccessToken(accessToken)
            .setOAuthAccessTokenSecret(accessSecret);

        try {
            TwitterFactory factory = new TwitterFactory();
            Twitter twitter = factory.getInstance();
            AccessToken accestoken = new AccessToken(accessToken, accessSecret);

            twitter.setOAuthAccessToken(accestoken);
            Status status = twitter.updateStatus(testPost);
            System.out.println("it worked!");
            if (status.getId() == 0) {
                System.out
                        .println("Error occured while posting tweets to twitter");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

为什么我总是收到这个错误:

401:身份验证凭据 (http://dev.twitter.com/pages/auth) 丢失或不正确。确保您已同步设置有效的消费者密钥/密码、访问令牌/密码和系统时钟。 错误 - 无法使用 OAuth 进行身份验证。 请求 - /1/statuses/update.json 相关讨论可以在互联网上: http://www.google.co.jp/search?q=e06d87a8http://www.google.co.jp/search?q=5851cbdb TwitterException{exceptionCode=[e06d87a8-5851cbdb], statusCode=401, retryAfter=-1, rateLimitStatus=null, featureSpecificRateLimitStatus=null, version=2.2.3} 在 twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:189) 在 twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65) 在 twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:102) 在 twitter4j.TwitterImpl.post(TwitterImpl.java:1871) 在 twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:459) 在 twitter4j.examples.tweets.UpdateStatus.main(UpdateStatus.java:35)

我已经在文件中设置了凭据,不是吗?

【问题讨论】:

    标签: credentials twitter4j


    【解决方案1】:

    我发现这是一个工作代码:

    package twitter4j.examples.tweets;
    
    import twitter4j.Status;
    import twitter4j.Twitter;
    import twitter4j.TwitterFactory;
    import twitter4j.auth.AccessToken;
    
    import java.io.IOException;
    
    public final class UpdateStatus {
    
        public static void main(String[] args) throws IOException {
    
            String tweet = "your first tweet via java";
    
            String accessToken = "your access token";
            String accessSecret = "your access token secret";
    
            try {
                TwitterFactory factory = new TwitterFactory();
                Twitter twitter = factory.getInstance();
                AccessToken accestoken = new AccessToken(accessToken, accessSecret);
    
                twitter.setOAuthAccessToken(accestoken);
                Status status = twitter.updateStatus(tweet);
                System.out.println("it worked!");
                if (status.getId() == 0) {
                    System.out
                            .println("Error occured while posting tweets to twitter");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    注意:为此,您必须在 twitter 上创建一个应用程序 你必须有一个 twitter4j.properties 文件,其中包含以下内容

    debug set to true
    oauth.consumerKey 
    oauth.consumerSecret 
    oauth.accessToken 
    oauth.accessTokenSecret
    

    所有密钥和令牌都来自 twitter 应用程序 确保您的应用程序访问级别都显示“读写”

    【讨论】:

    • 我没有使用属性文件,但代码仍然有效。我正在编写一个桌面应用程序。属性文件是否仅适用于 Web 应用程序?
    • 嗨,我没有得到解决方案。首先是什么问题?错误的凭据或错误的系统时钟?其次,唯一的变化是放弃在 ConfigurationBuilder 中的使用,而改为使用配置文件 twitter4j.properties。似乎与错误描述非常无关。
    猜你喜欢
    • 2018-01-16
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    相关资源
    最近更新 更多