Twitter4j:未设置OAuth使用者密钥/密钥

时间:2012-02-20 14:13:59

标签: java oauth twitter4j

我刚刚开始使用Twitter4j,并试图让我的第一个应用程序正常工作。我在Twitter应用程序页面上注册了我的应用程序,并在twitter4j.properties文件中输入了OAuth信息。但是,每次我尝试运行该应用程序时,都会收到一条错误消息,指出“OAuth Consumer Key / Secret Not Set”。我已将此消息包含在代码中。

非常感谢任何帮助。

提前致谢, Aonghus

import java.util.logging.Logger;
import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Status;
import twitter4j.Tweet;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;
import twitter4j.auth.RequestToken;


public class test {
    private final Logger logger = Logger.getLogger(test.class.getName());
    public static void main(String[] args) {
        new test().publish();
    }

    private void publish(){

        String message="Twitter application using Java http://www.java-tutorial.ch/architecture/twitter-with-java-tutorial";

        try {
            Twitter twitter = new TwitterFactory().getInstance();
            try {
                RequestToken requestToken = twitter.getOAuthRequestToken();
                AccessToken accessToken = null;
                while (null == accessToken) {
                    logger.fine("Open the following URL and grant access to your account:");
                    logger.fine(requestToken.getAuthorizationURL());
                    try {
                        accessToken = twitter.getOAuthAccessToken(requestToken);
                    } 
                    catch (TwitterException te) {
                        if (401 == te.getStatusCode()) {
                            logger.severe("Unable to get the access token.");
                        } else {
                            te.printStackTrace();
                        }
                    }
                }
                logger.info("Got access token.");
                logger.info("Access token: " + accessToken.getToken());
                logger.info("Access token secret: " + accessToken.getTokenSecret());
            } 
            catch (IllegalStateException ie) {
                // access token is already available, or consumer key/secret is not set.
                if (!twitter.getAuthorization().isEnabled()) {
                    logger.severe("OAuth consumer key/secret is not set.");
                    return;
                }
            }
            Status status = twitter.updateStatus(message);
            logger.info("Successfully updated the status to [" + status.getText() + "].");
        } 
        catch (TwitterException te) {
            te.printStackTrace();
            logger.severe("Failed to get timeline: " + te.getMessage());
        }
    }
}

3 个答案:

答案 0 :(得分:3)

您需要在项目中创建一个类似于

的文件
debug=false
oauth.consumerKey=**************
oauth.consumerSecret=************************************
oauth.accessToken=****************************************
oauth.accessTokenSecret=*******************************

答案 1 :(得分:0)

您需要设置使用者密钥/密码。您必须从Twitter Developers

获取此密钥

答案 2 :(得分:0)

http://twitter4j.org/en/configuration.html

twitter4j.properties是一种方式。