【Perl版】TwitterAPIでStremingAPIを使用してつぶやきをリストで抽出
データの流れは同じはず
基本、php版と同じ流れでデータを渡せばイケるはず…
手順
ソース
#!/usr/bin/env perl use strict; use warnings; use Net::OAuth; use MIME::Base64; use JSON; use IO::Socket; use IO::Socket::SSL; use Data::Dumper; use utf8; binmode STDOUT => ':utf8'; # サイト情報 # my $url = 'https://userstream.twitter.com/1.1/user.json'; # my $site = 'userstream.twitter.com'; my $url = 'https://stream.twitter.com/1.1/statuses/sample.json'; my $site = 'stream.twitter.com'; # Auth情報を編集してヘッダーを取得 my $request = Net::OAuth->request('protected resource')->new( version => '1.0', consumer_key => "Application settingsのAPI key", consumer_secret => "Application settingsのAPI secret", token => "Your access tokenのAccess token", token_secret => "Your access tokenのAccess token secret", request_method => "GET", signature_method => 'HMAC-SHA1', timestamp => time, nonce => MIME::Base64::encode( time . $$ . rand ), request_url => $url, (), ); $request->sign; my $auth = $request->to_authorization_header; # SSLオープン my $sock = IO::Socket::SSL->new( PeerAddr => $site . ':https' ); # パラメータ出力 my $req = ""; $req .= "GET $url HTTP/1.1\r\n"; $req .= "Host: $site\r\n"; $req .= "Authorization: $auth\r\n"; $req .= "\r\n"; $sock->print("$req"); # while ( my $l = $sock->getline ) { print $l; } # ここからツイート while ( my $l = $sock->getline ) { print Dumper($l); } # 閉じる if(defined $sock){ close $sock; }
結果