Scrapdiary

DesigningとEngineeringの架け橋

Net::Twitterでポスト専用簡易CGI

先日CPANでNet::Twitterをインストールしたので、ポスト専用の超絶簡易CGIを作ってみた。しかも自分専用。モバツイッターなどの投稿サービスがあるけれど*1、せっかくインストールしたモジュールを試しに使ってみたかったので、恐らく車輪を再発明でしょうが自習のためにあえて勉強がてら作りました。

もちろん先人のお知恵を借りてます。

ちょっと改良したのはHTMLからCGIへリクエストを投げて内部のモジュールが処理する形にしたとこ。

post.pl - CGI

#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use Jcode;
use PostTwitter;

my $cgi = new CGI;
our $tweet = Jcode::convert($cgi->param('tweet'), 'utf8');
PostTwitter::done;
print   $cgi->header(-charset=>'utf8'),
        $cgi->start_html('Latest - Net::Twitter'),
        $cgi->h1('Latest:'),
        $cgi->p($tweet),
        $cgi->end_html;
exit;


PostTwitter.pm - モジュール側

package PostTwitter;
use strict; 
use warnings;
use Net::Twitter;

sub done {
        my $twit = Net::Twitter->new(
                username=>"kulamochi",
                password=>"hogehoge"
        );      
        my $result = $twit->update($main::tweet);
}
1;

HTMLのソースは割愛。基本すべて同じディレクトリに配置。ディレクトリを分けるのであれば use lib でモジュールの場所を明記する。

自分的な課題としてはPostTwitter->done($tweet)のようにオブジェクト志向的な書き方を試してみたい。

*1:もちろん機能はモバツイッターとはショボ過ぎて比べ物にならない。