twitter4j配置

时间:2012-05-16 06:01:30

标签: java api properties twitter4j

我试图将twitter4j配置为流式传输

  1. 我已经从twitter获得了(消费者密钥/秘密,访问令牌和访问密钥)
  2. 我创建了一个新的java项目,并将twiiter4j导入为库
  3. 现在我想知道如何配置它(http://twitter4j.org/en/configuration.html

    第一种方式:
    保存名为" twitter4j.properties"的标准属性文件。将它放在当前目录,类路径目录的根目录。

    我使用netbeans并想知道我在创建属性文件时应该选择的文件类型以及我必须放置它的位置?

4 个答案:

答案 0 :(得分:3)

回答你的问题:

  1. 选择普通文本文件类型,添加内容并将其重命名为twitter4j.properties
  2. 您可以将文件放在项目的根文件夹中,也可以放在classpath的任何文件夹中。请确保该文件夹位于classpath,这就是需要注意的事项。

答案 1 :(得分:1)

美好的一天。

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

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

答案 2 :(得分:0)

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

答案 3 :(得分: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());
        }