2

我正在尝试将 twitter4j 配置为流式传输推文

  1. 我已经从 twitter 获得了(消费者密钥/秘密、访问令牌和访问秘密)
  2. 我创建了一个新的 java 项目并将 twiiter4j 作为库导入

现在我想知道如何配置它(http://twitter4j.org/en/configuration.html

第一种方法:
保存一个名为“twitter4j.properties”的标准属性文件。将其放置到当前目录,即类路径目录的根目录中。

我正在使用 netbeans,想知道在创建属性文件时应该选择的文件类型以及我必须将它放在哪里?

4

4 回答 4

3

回答您的问题:

  1. 选择一个普通的文本文件类型,添加内容并将其重命名为twitter4j.properties
  2. 您可以将文件放在项目的根文件夹中,也可以放在classpath. 只要确保文件夹在 中classpath,这就是需要注意的地方。
于 2012-05-16T06:49:37.063 回答
1

再会。

在独立应用程序的生产环境中使用twitter4j.properties文件并不是更好的方法。因为您需要保证没有任何用户无法读取您的密钥。

因此,最好使用带有硬编码密钥的配置工厂类并在流程上进行配置。

于 2012-05-16T07:32:07.347 回答
0

查看此示例,它适用于普通 Twitter 对象,但同样的方法也适用于 TwitterStream。基本上,将 ConfigurationBuilder Twitter 4j 与 Netbeans 一起使用。

于 2012-05-16T14:38:43.153 回答
0

参考以下代码:

//Configuration for twitter4j
        ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
  .setOAuthConsumerKey("*********************")
  .setOAuthConsumerSecret("******************************************")
  .setOAuthAccessToken("**************************************************")
  .setOAuthAccessTokenSecret("******************************************");

//Example for fetching public tweets 
//Sample which gives all tweets of Kim Kardarshian

    TwitterFactory tf = new TwitterFactory(cb.build());
    Twitter twitter = tf.getInstance();
    int pageno = 1;
    String user = "@KimKardashian";
    List<Status> statuses = new ArrayList<Status>();

    while (true) {
      try {
        int size = statuses.size(); 
        Paging page = new Paging(pageno++, 100);
        statuses.addAll(twitter.getUserTimeline(user, page));
        if (statuses.size() == size)
          break;
      }
      catch(TwitterException e) {
        e.printStackTrace();
      }
    }

//sample which gives "n" (here 10) tweets of particular user
        try{
         Twitter twitter = TwitterFactory.getSingleton();
         Paging p = new Paging();
          p.setCount(10);
         statuses.addAll(twitter.getUserTimeline("user",p));
       }catch(Exception e)
      { e.printStackTrace(); }
        for (Status st:statuses) {
            System.out.println(st.getText());
        }
于 2016-01-18T07:43:53.893 回答