当前位置: 首页 > 知识库问答 >
问题:

twitter4j的问题及处理

东门奕
2023-03-14

我试图让处理显示包含我的关键字的最新推文。我卡住了。我不确定如何检查它是否在更新。我知道它可以拉出最近的推特,但到目前为止,我唯一可以查看最新推特的方法是重新启动我的程序。抱歉太乱了。

import twitter4j.conf.*;
import twitter4j.*;
import twitter4j.auth.*;
import twitter4j.api.*;

import java.util.*;

Twitter twitter; // creating the twitter object
String searchString = "newborn"; // twitter search query
List<Status> tweets;// List of Status object to hold tweets
List<Status> tweets2;
int currentTweet;// 
int nextTweet;

void setup ()
{
  size(800,600);

  ConfigurationBuilder cb = new ConfigurationBuilder(); // New config obj, auth.

  cb.setOAuthConsumerKey("");
  cb.setOAuthConsumerSecret("");
  cb.setOAuthAccessToken("");
  cb.setOAuthAccessTokenSecret("");

  TwitterFactory tf = new TwitterFactory(cb.build()); // init. twit obj  by retr inst from twit fact

  twitter = tf.getInstance(); //here, twit gets isnt is the inst
  getTweets2();
  getNewTweets(); //  func to get the tweets

  currentTweet = 0;
  nextTweet = 1;
  //Status status = tweets.get(currentTweet);

  thread("refreshTweets");





}

void draw()
{
  background(0);

  //currentTweet = currentTweet + 1;
  //nextTweet = nextTweet + 1;

  if (currentTweet >= tweets.size())
  {
    currentTweet = 0;
  }
  if (nextTweet >= tweets.size())
  {
    nextTweet = 1;
  }

  Status status = tweets.get(currentTweet); // retrieve current tweet from list of tweets
  Status status2 = tweets.get(nextTweet);
  Status status3 = tweets2.get(0);

  Status status4 = status;

  fill(200);

  if(tweets.get(0).getCreatedAt() != tweets2.get(0).getCreatedAt()) {
  //text(status.getText(),random(width),random(height), 300, 200);
  text("current tweet:" + status.getCreatedAt() + ".....if" ,250,250, 300, 200);
  //text("next tweet:" + status2.getCreatedAt(),250,350, 300, 200);
  //text("10th tweet:" + status3.getCreatedAt(),250,450, 300, 200);
  }else {
    text("current tweet:" + status2.getCreatedAt() + ".....else",250,250, 300, 200);
  }
  delay(2500);

  getNewTweets();

  //System.out.println(status2.getText());
}

void getNewTweets() 
{
  try
  {
    //we try to get the tweetuses!
    Query query = new Query(searchString);

    QueryResult result = twitter.search(query);

    tweets = result.getTweets();

  }
  catch (TwitterException te)
  {
    //tweetus aborted? 
    System.out.println("failed to search tweets: " + te.getMessage());
    System.exit(-1);

  }
}

  void getTweets2() //this neat thing gets those tweets 
{
  try
  {
    //we try to get the tweetuses!
    Query query = new Query(searchString);

    QueryResult result = twitter.search(query);

    tweets2 = result.getTweets();

  }
  catch (TwitterException te)
  {
    //tweetus aborted? 
    System.out.println("failed to search tweets: " + te.getMessage());
    System.exit(-1);

  }




}

void refreshTweets()
{
  while(true)
  {
    getNewTweets();
    println("Updated Tweets");
    delay(5000);
  }
}

共有1个答案

杜思远
2023-03-14

注意:您已经将您的秘密令牌公开发布到internet上,所以您应该尽快更改它们!仅仅编辑你的问题而不包括它们是不够的,因为它们仍然会在修订历史中。

你在这个程序中有很多额外的东西。你可以简化很多。你所需要做的就是:

第1步:编写获取tweet(或tweet的ArrayList)的函数。在草图级变量中跟踪该tweet。您已经使用getnewtweets()函数实现了这一点,但是可以去掉其他函数。

import twitter4j.conf.*;
import twitter4j.*;
import twitter4j.auth.*;
import twitter4j.api.*;

Twitter twitter;
String searchString = "cat";
Status currentTweet;

void setup ()
{
  size(800, 600);

  ConfigurationBuilder cb = new ConfigurationBuilder(); // New config obj, auth.

  cb.setOAuthConsumerKey("");
  cb.setOAuthConsumerSecret("");
  cb.setOAuthAccessToken("");
  cb.setOAuthAccessTokenSecret("");

  TwitterFactory tf = new TwitterFactory(cb.build()); 
  twitter = tf.getInstance();

  getNewTweets();
}

void draw()
{

  //get new tweet once every 10 seconds
  if (frameCount % (60*10) == 0) {
    getNewTweets();
  }

  background(0);
  fill(200);

  text("current tweet:" + currentTweet.getText(), 250, 250, 300, 200);
}

void getNewTweets() 
{

  println("Getting new tweet...");
  try
  {
    Query query = new Query(searchString);

    QueryResult result = twitter.search(query);
    currentTweet = result.getTweets().get(0);
  }
  catch (TwitterException te)
  {
    te.printStackTrace();
  }
}
 类似资料:
  • 我试图遵循以下教程: 但是当我运行处理中的代码时,我得到以下错误。 Ive通过拖放到处理IDE添加了twitter4j库。

  • 本文档介绍 DM 中可能存在的、常见的性能问题及其处理方法。 在诊断与处理性能问题时,请确保已经正确配置并安装 DM 的监控组件,并能在 Grafana 监控面板查看 DM 的监控指标。 在诊断性能问题时,请先确保对应组件正在正常运行,否则可能出现监控指标异常的情况,对性能问题的诊断造成干扰。 在诊断问题前,也可以先了解 DM 的性能测试报告。 当数据迁移过程存在较大延迟时,若需快速定位瓶颈是在

  • 使用下面的代码和twitter4j库,我终于成功地处理了我自己的tweets。我现在一直在努力调整代码,以吸引特定用户的推文,没有任何运气,不管网上有很多人发布了“工作代码”。有人能引导我,告诉我到底需要改变什么吗?谢了! 编辑-修改的代码,以获得用户推特。不产生错误或结果...

  • 本文向大家介绍Android WebView 常见问题及处理方案,包括了Android WebView 常见问题及处理方案的使用技巧和注意事项,需要的朋友参考一下 目前html5发展非常迅速,很多native app都会嵌入到网页中,以此来适用多变的市场需求。但是android的webview默认支持的功能非常弱,很多地方都是需要自定义的,才能达到我们想要的效果。并且webview在不同的版本会有

  • 本文向大家介绍Python3连接Mysql8.0遇到的问题及处理步骤,包括了Python3连接Mysql8.0遇到的问题及处理步骤的使用技巧和注意事项,需要的朋友参考一下 最近在使用Python开发系统,需连接mysql数据库,我用的是Python3连接MySQL8.0,其中老是报错以下问题: 网上给了各种各样的方法,大多是通过各种方式修改密码。 最简单的方法是更换了root密码的认证方式解决的,

  • Twitter4J 是一个非官方的 Twitter API 的 Java 客户端开发包,使用 Twitter4j 可以轻松在你的应用中集成 Twitter 的服务,主要特点: 100% 纯 Java 支持 Android 平台和 Google App Engine 不依赖第三方开发包 内建 OAuth 支持 示例代码: // Creates the main objectTwitter twitt