从Java(web应用程序)登录twitter和推特

从Java(web应用程序)登录twitter和推特,java,twitter,twitter4j,Java,Twitter,Twitter4j,我想编写一个简单的java或java web应用程序,允许用户登录并发布twit。我甚至不需要用户界面。我可以简单地硬编码twit、userId和密码。我只是想知道过程。我已经找了一段时间了,到目前为止还没有成功。下面的代码最终被认为是有效的,但它不起作用 代码是一个简单的应用程序,而不是web应用程序。有没有人有一些代码可以使用当前的Twitter API?我一直在尝试使用twitter4j import twitter4j.Twitter; import twitter4j.TwitterE

我想编写一个简单的java或java web应用程序,允许用户登录并发布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)
有人有我可以使用的完整解决方案吗?谢谢。

除了consumerKey和ConsumerCret您的应用程序的密钥和机密外,您还需要使用您的应用程序的用户提供accessToken。您可以使用OAuth协议从Twitter获取此accessToken。

通过此链接 您可以生成使用者密钥、使用者密钥、访问令牌和访问令牌密钥

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

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

为什么不使用类似的工具呢?这都是客户端的,你的应用程序不需要访问用户的帐户。