我可以使用twitter4j登录Twitter并获取有关登录用户的信息,但我无法从我的应用程序发布推文。我正在使用java web应用程序发布推文。请参阅下面的代码我使用。
String ACCESS_TOKEN = "ttttttttt";
String ACCESS_TOKEN_SECRET = "gggggggggggggg";
String CONSUMER_KEY = "gggggggggggg";
String CONSUMER_SECRET = "hhhhhhhhhhhhh";
String tweet = "";
if (request.getParameter("tweet") != null) {
tweet = request.getParameter("tweet");
}
AccessToken accessToken = new AccessToken(ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
OAuthAuthorization authorization = new OAuthAuthorization(ConfigurationContext.getInstance(), CONSUMER_KEY, CONSUMER_SECRET, accessToken);
Twitter twitter = new TwitterFactory().getInstance(authorization);
try {
//twitter.updateStatus("Hello World!");
twitter.updateStatus(tweet);
} catch (TwitterException e) {
System.err.println("Error occurred while updating the status!");
}
我得到了以下例外:
TwitterException {exceptionCode = [fa54b184-3bf2623f],statusCode = 401,retryAfter = 0,rateLimitStatus = null,version = 2.1.5-SNAPSHOT(build:d372a51b9b419cbd73d416474f4a855f3e889507)}
请帮忙。
答案 0 :(得分:7)
转到您已创建的应用程序(https://dev.twitter.com)
检查您的应用程序设置(>应用程序类型)
'应用程序类型'需要是读取,写入和访问直接消息之一。如果没有,您可以轻松地进行更新。
(我在处理环境中测试了你的代码并且它正在运行)
答案 1 :(得分:4)
首先,重新生成您的访问令牌/机密和消费者密钥/机密。 然后尝试一下。
String consumerKey = "yourconsumerKey ";
String consumerSecret = "yourconsumerSecret";
String accessToken = "yourAccessToken";
String accessSecret = "yourAccessSecret";
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey(consumerKey)
.setOAuthConsumerSecret(consumerSecret)
.setOAuthAccessToken(accessToken)
.setOAuthAccessTokenSecret(accessSecret);
try
{
TwitterFactory factory = new TwitterFactory(cb.build());
Twitter twitter = factory.getInstance();
System.out.println(twitter.getScreenName());
Status status = twitter.updateStatus(latestStatus);
System.out.println("Successfully updated the status to [" + status.getText() + "].");
}catch (TwitterException te) {
te.printStackTrace();
System.exit(-1);
}
答案 2 :(得分:1)
状态码401意味着你 not authorized
检查您的凭据是否有效。如果是,可能您的应用程序尚未经过用户验证。请参阅twitter4j site(第7点)
上的示例