在Perl中实现Twitter流API,不会打印任何内容

时间:2015-12-15 13:00:55

标签: perl twitter

我正在尝试使用Twitter流API在控制台中演示推文,但此刻屏幕上没有任何内容。我使用AnyEvent::Twitter::Stream包来执行此操作,我已采用该页面上包含的OAuth示例并稍作编辑:

#!/usr/local/bin/perl -w

use AnyEvent::Twitter::Stream;

# to use OAuth authentication
my $listener = AnyEvent::Twitter::Stream->new(
  consumer_key    => "my_consumer_key",
  consumer_secret => "my_consumer_secret",
  token           => "my_token",
  token_secret    => "my_token_secret",
  method          => "sample",
  api_url         => "https://stream.twitter.com/1.1/statuses/sample.json",
  track           => "apple",
  on_tweet => sub {
            my $tweet = shift;
            print "$tweet->{user}{screen_name}: $tweet->{text}\n";
        },
);

我期待这个打印到stdout提到“apple”的所有推文,但是当我执行这段代码时,脚本会立即退出并返回shell。我有点期待这个继续运行并继续向stdout打印消息。我误解了它是如何工作的吗?

1 个答案:

答案 0 :(得分:1)

您可能想查看提供的示例:

http://cpansearch.perl.org/src/MIYAGAWA/AnyEvent-Twitter-Stream-0.27/eg/track.pl

它涉及创建一个AE::cv对象,并在设置Twitter流监听器之后,在该对象上调用recv,以便它实际循环等待数据。