Twitter の自分の発言をはてなダイアリーに投稿する
- はてなダイアリーAtomPubとは - はてなキーワード
- http://katsubemakito.net/cgiperl/cgi/cat150/nettwitter/twitter-nettwitter-1.html
上記ページのコードを参考に(というか、そのままですが)作りました。
今日 Twitter で発言した内容をはてなダイアリーに投稿できます(但し、最大20件まで)。
#!/usr/bin/env perl use strict; use warnings; use Net::Twitter; use XML::Atom::Entry; use XML::Atom::Client; use DateTime; use DateTime::Format::HTTP; my $twit = Net::Twitter->new( username => 'TwitterUserName', password => 'TwitterPassword', ); my $now = DateTime->now(time_zone => 'local'); my $today = DateTime->new( time_zone => 'local', year => $now->year, month => $now->month, day => $now->day, hour => 0, minute => 0, second => 0, ); my $array_ref = $twit->user_timeline({since => $today->subtract(hours => 9)}); my $mylog = ">||\n"; foreach my $hash_ref ( @$array_ref ){ my $tmp = $hash_ref->{'created_at'}; substr($tmp, 20, 5) = 'GMT'; my $dt = DateTime::Format::HTTP->parse_datetime($tmp); $dt->add(hours => 9); my $hms = $dt->hms(':'); $mylog .= "$hms $hash_ref->{'text'}\n"; } $mylog .= "||<"; if ($mylog eq ">||\n||<") { $mylog = "今日は Twiiter で発言していません。"; } my $username = 'HatenaUserName'; my $password = 'HatenaPassword'; my $PostURI = "http://d.hatena.ne.jp/$username/atom/blog"; my $client = XML::Atom::Client->new; $client->username($username); $client->password($password); my $entry = XML::Atom::Entry->new; $entry->title('[twitter]今日の Twitter'); $entry->content($mylog); my $EditURI = $client->createEntry($PostURI, $entry) or die $client->errstr; print $EditURI;