twitter4j无法识别setRpp或Tweet类

twitter4j无法识别setRpp或Tweet类,twitter,processing,twitter4j,Twitter,Processing,Twitter4j,我正在尝试使用twitter4J通过处理设置twitter搜索。我有最新版本的processing(2.0)和最新版本的twitter4j(3.0.3)。当我运行粘贴在下面的代码时,我遇到了一个错误(除了我删除了twitter特定的字符串):“函数setRpp(int)不存在” 我在一个处理论坛上发现了一个类似的查询: 此线程的建议如下: 试图找出twitter4J,也遇到了类似的错误 您可以切换到twitter4J的早期版本——v2.2.5——或者您必须了解从twitter4J 2.x.x到3

我正在尝试使用twitter4J通过处理设置twitter搜索。我有最新版本的processing(2.0)和最新版本的twitter4j(3.0.3)。当我运行粘贴在下面的代码时,我遇到了一个错误(除了我删除了twitter特定的字符串):“函数setRpp(int)不存在”

我在一个处理论坛上发现了一个类似的查询:

此线程的建议如下: 试图找出twitter4J,也遇到了类似的错误

您可以切换到twitter4J的早期版本——v2.2.5——或者您必须了解从twitter4J 2.x.x到3.x.x所做的更改

尝试将“setRpp(1)”更改为“计数(1)”

“Tweet”也可能不起作用——您可以尝试将其更改为“Status”


当我切换setRpp>count和Tweet>Status时,处理似乎找不到函数,“getFromUser”错误:函数getFromUser()不存在

我假设getFromUser是Tweet类的一个函数,因为我将该类从Tweet更改为Status,所以处理无法再找到该函数

还有其他人经历过这些问题吗?请让我知道,谢谢

a

我的代码:

/*

Just a simple Processing and Twitter thingy majiggy

RobotGrrl.com

Code licensed under:
CC-BY

*/

// First step is to register your Twitter application at dev.twitter.com
// Once registered, you will have the info for the OAuth tokens
// You can get the Access token info by clicking on the button on the
// right on your twitter app's page
// Good luck, and have fun!

// This is where you enter your Oauth info
static String OAuthConsumerKey = "xxx";
static String OAuthConsumerSecret = "xxx";

// This is where you enter your Access Token info
static String AccessToken = "xxx";
static String AccessTokenSecret = "xxxx;

// Just some random variables kicking around
String myTimeline;
java.util.List statuses = null;
User[] friends;
Twitter twitter = new TwitterFactory().getInstance();
RequestToken requestToken;
String[] theSearchTweets = new String[11];


void setup() {

  size(100,100);
  background(0);

  connectTwitter();
  sendTweet("Hey from Simple Processing woop woop #RobotGrrl");

}


void draw() {

  background(0);

}


// Initial connection
void connectTwitter() {

  twitter.setOAuthConsumer(OAuthConsumerKey, OAuthConsumerSecret);
  AccessToken accessToken = loadAccessToken();
  twitter.setOAuthAccessToken(accessToken);

}

// Sending a tweet
void sendTweet(String t) {

  try {
    Status status = twitter.updateStatus(t);
    println("Successfully updated the status to [" + status.getText() + "].");
  } catch(TwitterException e) { 
    println("Send tweet: " + e + " Status code: " + e.getStatusCode());
  }

}


// Loading up the access token
private static AccessToken loadAccessToken(){
  return new AccessToken(AccessToken, AccessTokenSecret);
}


// Get your tweets
void getTimeline() {

  try {
    statuses = twitter.getUserTimeline(); 
  } catch(TwitterException e) { 
    println("Get timeline: " + e + " Status code: " + e.getStatusCode());
  }

  for(int i=0; i<statuses.size(); i++) {
    Status status = (Status)statuses.get(i);
    println(status.getUser().getName() + ": " + status.getText());
  }

}


// Search for tweets
void getSearchTweets() {

  String queryStr = "@RobotGrrl";

  try {
    Query query = new Query(queryStr);    
    query.setRpp(10); // Get 10 of the 100 search results  
    QueryResult result = twitter.search(query);    
    ArrayList tweets = (ArrayList) result.getTweets();    

    for (int i=0; i<tweets.size(); i++) {   
      Tweet t = (Tweet)tweets.get(i);   
      String user = t.getFromUser();
      String msg = t.getText();
      Date d = t.getCreatedAt();    
      theSearchTweets[i] = msg.substring(queryStr.length()+1);

      println(theSearchTweets[i]);
    }

  } catch (TwitterException e) {    
    println("Search tweets: " + e);  
  }

}
/*
只是一个简单的处理和Twitter的东西
RobotGrrl.com
根据以下条款获得许可的代码:
抄送人
*/
//第一步是在dev.Twitter.com上注册您的Twitter应用程序
//注册后,您将获得OAuth令牌的信息
//您可以通过单击屏幕上的按钮来获取访问令牌信息
//就在你的twitter应用程序页面上
//祝你好运,玩得开心!
//这是您输入Oauth信息的地方
静态字符串OAuthConsumerKey=“xxx”;
静态字符串OAuthConsumerCret=“xxx”;
//这是您输入访问令牌信息的地方
静态字符串AccessToken=“xxx”;
静态字符串AccessTokenSecret=“xxxx;
//只是一些随机变量
字符串myTimeline;
java.util.List status=null;
用户[]朋友;
Twitter=new TwitterFactory().getInstance();
请求令牌请求令牌;
String[]theSearchTweets=新字符串[11];
无效设置(){
尺寸(100100);
背景(0);
连接Twitter();
sendTweet(“嘿,来自简单处理的woop woop#RobotGrrl”);
}
作废提款(){
背景(0);
}
//初始连接
void connectTwitter(){
setOAuthConsumer(OAuthConsumerKey,OAuthConsumerCret);
AccessToken AccessToken=loadAccessToken();
setOAuthAccessToken(accessToken);
}
//发送推特
void sendTweet(字符串t){
试一试{
Status Status=twitter.updateStatus(t);
println(“已成功将状态更新为[“+status.getText()+”]);
}捕获(twitter异常){
println(“发送推文:+e+”状态代码:+e.getStatusCode());
}
}
//加载访问令牌
私有静态AccessToken loadAccessToken(){
返回新的AccessToken(AccessToken,AccessTokenSecret);
}
//获取您的推文
void getTimeline(){
试一试{
status=twitter.getUserTimeline();
}捕获(twitter异常){
println(“获取时间线:+e+”状态代码:+e.getStatusCode());
}

对于(int i=0;i我也遇到了这个问题,getFromeUser()不再是一个状态方法。现在需要创建一个用户类,然后使用getName()获取其名称。我是这样做的:

Status t=(Status) tweets.get(i);
User u=(User) t.getUser();
String user=u.getName();
我希望这对你有帮助


H.

听起来你有了新的twitter4j库。没问题,我正在使用3.0.3 twitter4j,似乎情况有所改变。这就是我的工作:

TwitterFactory twitterFactory;  
一个新的公共TwitterFactory TwitterFactory,在connectTwitter()中,我基本上交换了您所拥有的

ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setOAuthConsumerKey(OAuthConsumerKey);
cb.setOAuthConsumerSecret(OAuthConsumerSecret);
cb.setOAuthAccessToken(AccessToken);
cb.setOAuthAccessTokenSecret(AccessTokenSecret);
twitterFactory = new TwitterFactory(cb.build());
twitter = twitterFactory.getInstance();
创建我的Twitter
Twitter
对象。我很确定这就是我所做的所有更改,但如果我遗漏了什么,这里有一个要点

你的标题做得很好。

twitter4j v4.0.2似乎能识别“状态”。这对我帮助很大。