ゆーすけべー日記

はてなBlogってどーなの!?

Net::Twitter で簡単に作る Twitter ボットスクリプト紹介

「なでしこ」って日本語でプログラミングできて、Twitter ボットも作れるんですね!

最近、話題のマイクロブログ Twitter で自動的に発言するプログラム(通称:ボット)を作る方法を紹介します。日本語のプログラミング言語「なでしこ」を使って作るので、専門知識は少しで大丈夫です。面白い(あるいは役に立つ)ボットを作って楽しみましょう。

八角研究所 : 誰でも簡単にできる Twitter ボット作成入門

僕は Perl で Net::Twitter というモジュールを使ってサクッと ボットを作っているいるのでその簡単なスクリプト例を紹介します。

とりあえず、Net::Twitter 便利なので、CPAN からインストールしてください。 そんで今回作るボットは超簡易なものにしました。 スクリプトを実行するとフォローされている人をランダムに選んで、 その人に対してナンパ言葉を適当につぶやく名付けて「@nanpaman」です。

nanpaman

スクリプトはこんな感じだよ!

use strict;
use warnings;
use List::Util qw( shuffle );
use Net::Twitter;
use utf8;

my @nanpa_text = qw/
へいname、ちょっとお茶しない?
nameと一緒にTwitterできてぼくは本当に幸せだよ
オレの彼女になってくれないかな…好きだよ!
nameにフォローされてからずっと、nameのことばかり考えていました。愛してる
気持ちいいよー。俺が。
/;

my $nt = Net::Twitter->new(
    traits   => [qw/API::REST/],
    username => 'username',
    password => 'password',
);

if ( my $followers = $nt->followers ) {
    my $target_user = shuffle( @$followers );
    my $screen_name = $target_user->{screen_name};
    my $text = shuffle( @nanpa_text );
    eval { $text =~ s/name/$screen_name/ };
    $text = "\@$screen_name " . $text;
    $nt->update( $text );
    warn "$text\n";
}

簡単ですね! これを cron で何分かおきに実行すれば、一応ボットになります。 ただ、この場合投稿した情報等をどこにも保存していないので、 連続して同じポストをしたりします。 ナンパ言葉のバリエーションも含めその当たりは工夫が必要になってきますね。

ということで、Perl でも簡単に Twitter ボットを作ることができますよーという お話でした。Enjoy!

Perlオススメ本(この順番に読むのが個人的にオススメ)

初めてのPerl
posted with yusukebe.com::AmazonSearch on 2009.8.1
  • ランダル・L. シュワルツ トム フェニックス
  • 単行本 / オライリージャパン
  • Amazon 売り上げランキング: 39228
  • Amazon おすすめ度の平均: 4.5
    • 5 これほど面白い本はそうそうないです
    • 5 素晴らしきPerlの世界への案内
    • 5 読み物としても十分面白い
    • 5 定番書
    • 5 初心者も持っておきたい一冊
Amazon.co.jpで詳細を見る

続・初めてのPerl 改訂版
posted with yusukebe.com::AmazonSearch on 2009.8.1
  • Randal L. Schwartz brian d foy Tom Phoenix 吉川 英興 伊藤 直也 田中 慎司 株式会社ロングテール/長尾 高弘
  • 大型本 / オライリー・ジャパン
  • Amazon 売り上げランキング: 55757
  • Amazon おすすめ度の平均: 4.0
    • 5 この本は何処まで読めば良いか
    • 3 初めてのPerlと思って読むとショックを受ける
    • 4 リファレンスの説明は役に立つが、オブジェクト指向の解説がいまいち。
Amazon.co.jpで詳細を見る

モダンPerl入門 (CodeZine BOOKS)
posted with yusukebe.com::AmazonSearch on 2009.8.1
  • 牧 大輔
  • 大型本 / 翔泳社
  • Amazon 売り上げランキング: 4819
  • Amazon おすすめ度の平均: 5.0
    • 5 perl経験者は読んで損はしない
    • 5 Perl中級者におすすめしたい
Amazon.co.jpで詳細を見る