Twitter bot を作る

参考サイト

  1. PerlによるTwitter botの作り方
  2. twitter botをつくってみる。(3) - botのプログラミング
  3. PerlでTwitterクライアント製作メモ その1
  4. CPAN string-similarity
  5. UTF-8のフラグ
  6. UTF-8のフラグ

Perl CPAN Net::Twitter を利用する OAuthを利用する

  1. twitter bot用の(捨て)アカウントを作成する
  2. OAuth に必要な情報を得る
  3. 参考サイトをコピペして,実行してみる
    	#!/usr/bin/perl
    	use strict;
    	use Net::Twitter;
    	use utf8;
    	binmode STDOUT, ":utf8";
    	
    	my $consumer_key = "<<<YOUR OWN consumer key>>>";
    	my $consumer_secret = "<<<YOUR OWN consumer secret>>>";
    	my $access_token = "<<<YOUR OWN access token>>>";
    	my $access_token_secret = "<<<YOUR OWN access token secret>>>";
    	
    	my $handle = Net::Twitter->new({
    	    traits => [qw/OAuth API::REST API::Search/],
    	    consumer_key => $consumer_key,
    	    consumer_secret => $consumer_secret,
    	    access_token => $access_token,
    	    access_token_secret => $access_token_secret});
    	
    	#do_search($_) foreach @ARGV;
    	
    	my $msg = "てすと投稿です";
    	my $handle = Net::Twitter->new({
    	    traits => [qw/OAuth API::REST/],
    	    consumer_key => $consumer_key,
    	    consumer_secret => $consumer_secret,
    	    access_token => $access_token,
    	    access_token_secret => $access_token_secret});
    	my $ret = $handle->update({status=>$msg});
    	print "Cannot post!!" unless $ret;
    	
    	sub do_search {
    	    my $term = shift;
    	
    	    my @results;
    	    my $rs = $handle->search({q=>$term, lang=>"ja", page=>1, rpp=>100});
    	    if (ref $rs eq 'HASH' && exists $rs->{results}) {
    	        if (@{$rs->{results}}) {
    	            print_post($_) foreach @{$rs->{results}};
    	        }
    	    }
    	}
    	
    	sub print_post {
    	    my $t = shift;
    	
    	    print "$t->{from_user} (on $t->{created_at})  $t->{text}\n";
    	}
  4. cron(定期的にコマンドやプログラムを実行する)

問題

  1. Wide character in ...

自分のボット

  • しいなちゃんぼっと https://twitter.com/seana_bot
    	今後,まじめに観光案内をする予定
  • うらしいなちゃんぼっと https://twitter.com/kmry_bot
    	卒論のボツになったテーマを実装してみた
    	ちょっと卑猥な印象を受ける単語に変換して返信するボット
    	Twitter にもかかわらず,よく聞き取れないという...設定
    	うらしいなちゃんは,「え,○○って言ったの?」と聞き返す
    しいなちゃんうらしいなちゃん
    seana-chan.pngseana-chan-2.png

【今後】自分宛のツイートを取得して,解析して,返信ツイートをする

  1. 自分宛のツイートがあるのか定期的に確認する
    • $ ./twitter-search.pl "kmry_bot"
      • seana_bot (on Thu, 13 Dec 2012 04:49:00 +0000) @kmry_bot 今日は雪がたくさん積もっていたので雪かきをしてきました。
      • kmry_bot (on Thu, 13 Dec 2012 03:48:39 +0000) てすと投稿です
    • $ ./twitter-search.pl "@kmry_bot"
      • seana_bot (on Thu, 13 Dec 2012 04:49:00 +0000) @kmry_bot 今日は雪がたくさん積もっていたので雪かきをしてきました。
  2. 自分宛のツイートの内容があれば,内容を次のように分ける
    • 相手のアカウント名
    • 本文
    • URL
    • ハッシュタグ
  3. 上記から,本文のみを抽出し,形態素解析,構文解析を行う
  4. ○○手法を用いて,(相手のIDをつけて)返答する
    • ○○手法は,自分で考える
  5. 得られた情報をログに残す

木村ゼミ生限定

編集画面
ゼミ生
2017-2018年度生(11期)
石黒栞奈一宮拓海
亀井海舟佐藤栞
佐藤有希桧森拓真
藤本朱夏ホワイトジニー
増田優作谷内健太
2016-2017年度生(10期)
伊藤みき岡島健悟
小西雪葉祐川泰輝
鈴木佑菜大門拓史
田頭わかば戸嶋咲穂
中村智貴西野哲生
横山祐果川岸祐果
2015-2016年度生(09期)
浅賀七海小林真菜
西村伊央堀江知未
針生惟希村上浩太
2014-2015年度生(08期)
大石誠大野晋太朗
加藤裕樹佐々木左近
高橋理沙武田莉穂
寺島舞子畑賀大
山田修世
2013-2014年度生(07期)
加藤史織工藤智子
佐々木葉子志鎌周
高橋玄龍眈丈
中尾千咲中川玲菜
中藪大貴
2012-2013年度生(06期)
遠藤星地大野紗季
鎌田めぐみ木下和大
齋木涼介佐々木遥
佐藤優子沼澤文香
古屋真理吉田智弘
2010-2011年度生(05期)
葦原史敏伊藤大起
伊藤みどり永坂文乃
藤田航哉前多大輔
松本陵佑宮津有沙
山田亜季
2009-2010年度生(04期)
岸本隆志窪地由恵
志賀千鶴津田有子
三浦工弥
2008-2009年度生(03期)
粟津康佑井上さゆり
北崎佑樹工藤和寛
古俣優花佐川彰宏
佐藤禎洋鈴木亜衣
竹原希美藤井優作
堀公一堀内小織
米澤宏史
2007-2008年度生(02期)
佐藤健太上村佳弘
奥田啓貴小野誠
白井かずみ高井庸介
森谷亮介六渡有梨恵
若本哲平
2006-2007年度生(01期)
菅井梓渡部謙太郎
相坂真大村佳慎
奥桃子笠井猛
小林和幸齊藤いつこ
齊藤雄紀佐々木麻未
佐藤日加吏谷本貴之
徳江佑介長嶺脩平
西本みゆき林絵里子
澤田大輝

添付ファイル: fileseana-chan-2.png 410件 [詳細] fileseana-chan.png 380件 [詳細]