从Java(web-app)登录Twitter和推文

时间:2011-10-17 18:20:47

标签: java twitter twitter4j

我想编写一个简单的java(或java web app)程序,允许用户登录并发布twit。我甚至不需要用户界面。我可以简单地对twit,userId和密码进行硬编码。我只是想知道这个过程。我一直在寻找一段时间,到目前为止我没有成功。以下代码最终应该起作用。

代码是一个简单的应用程序,而不是Web应用程序。有没有人有一些可以使用现有Twitter API的代码?我一直在尝试使用twitter4j。​​

import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;
import twitter4j.auth.RequestToken;

public class TwitterUtils {

public static void main(String[] args) {
    try {

        final String consumerKey = "**********";
        final String consumerSecret = "**********";
        Twitter twitter = new TwitterFactory().getInstance();
        twitter.setOAuthConsumer(consumerKey, consumerSecret);
        RequestToken requestToken = twitter.getOAuthRequestToken();

        String token = requestToken.getToken();
        String tokenSecret = requestToken.getTokenSecret();
        System.out.println("My token :: " + token);
        System.out.println("My token Secret :: " + tokenSecret);

        //AccessToken a = new AccessToken(token, tokenSecret);
        //twitter.setOAuthAccessToken(a);
        twitter.updateStatus("If you're reading this on Twitter, it worked!");

    } catch (TwitterException e) {
        e.printStackTrace();
    }
}//main
}//TwitterUtils

使用AccessToken行注释我收到错误

Exception in thread "main" java.lang.IllegalStateException: Authentication credentials are missing. See http://twitter4j.org/configuration.html for the detail.     at twitter4j.TwitterBaseImpl.ensureAuthorizationEnabled(TwitterBaseImpl.java:205)
at twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:453)
at playaround.TwitterUtils.main(TwitterUtils.java:55)

Java结果:1

当我取消注释行时,错误读取

Exception in thread "main" java.lang.IllegalArgumentException: Invalid access token format. at twitter4j.auth.AccessToken.<init>(AccessToken.java:50)
at playaround.TwitterUtils.main(TwitterUtils.java:53)

有没有人有我可以使用的完整解决方案?感谢。

2 个答案:

答案 0 :(得分:0)

除了consumerKeyconsumerSecret(您的应用程序的密钥和秘密),您需要来自正在使用您的应用程序的用户的accessToken。您可以使用OAuth协议从Twitter获得此accessToken

答案 1 :(得分:0)

通过此链接( http://module.minic.ro/how-to-make-a-twitter-application-tutorial/)您可以生成消费者密钥,消费者密钥,访问令牌和访问令牌密钥

获取Twitter对象的密钥时使用此代码:

ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("*********************")
.setOAuthConsumerSecret("******************************************")
.setOAuthAccessToken("**************************************************")
.setOAuthAccessTokenSecret("******************************************");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();

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