- 追加された行はこの色です。
- 削除された行はこの色です。
**Twitter bot を作る [#o4bbd142]
***Perl CPAN Net::Twitter を利用する OAuthを利用する [#e089b4fe]
-参考サイト
--http://blog.asial.co.jp/1038
--http://www.fukudat.com/wiki/ja/Perl%E3%81%AB%E3%82%88%E3%82%8BTwitter_bot%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9
+twitter bot用のアカウントを作成する
--https://twitter.com/seana_bot
+OAuth に必要な情報を得る
--https://dev.twitter.com/apps/new
Consumer key
Consumer secret
Access token
Access token secret
+参考サイトを用いて
+[[参考サイト>http://www.fukudat.com/wiki/ja/Perl%E3%81%AB%E3%82%88%E3%82%8BTwitter_bot%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9]]をコピペして,実行してみる
#!/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";
}
+cron(定期的にコマンドやプログラムを実行する)
--crontab -e
---http://www.express.nec.co.jp/linux/distributions/knowledge/system/crond.html
---http://www.server-memo.net/tips/crontab.html
--例えば ... 1-59/2 * * * * /usr/bin/perl /home/(...)/twitter.pl
***自分のボット [#j9b1b5de]
-https://twitter.com/seana_bot
-https://twitter.com/kmry_bot
***【今後】自分宛のツイートを取得して,解析して,返信ツイートを返す [#scd624db]
+自分宛のツイートがあるのか定期的に確認する
--$ ./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 今日は雪がたくさん積もっていたので雪かきをしてきました。
+自分宛のツイートの内容があれば,内容を次のように分ける
--相手のアカウント名
--本文
--URL
--ハッシュタグ
+上記から,本文のみを抽出し,形態素解析,構文解析を行う
+○○(自分の名前)手法を用いて返答する
+得られた情報をログに残す