- 追加された行はこの色です。
- 削除された行はこの色です。
**Twitter bot を作る [#o4bbd142]
***参考サイト [#oaaa53ee]
+[[PerlによるTwitter botの作り方>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をつくってみる。(3) - botのプログラミング>http://cuddlecore.blog.shinobi.jp/Entry/6/]]
+[[PerlでTwitterクライアント製作メモ その1>http://d.hatena.ne.jp/tohky/20100822/1282429132]]
+[[CPAN string-similarity>http://search.cpan.org/~mlehmann/String-Similarity-1.04/Similarity.pm]]
***Perl CPAN Net::Twitter を利用する OAuthを利用する [#e089b4fe]
-参考サイト
--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用のアカウントを作成する
+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
--&color(red){【注意】Twitterでは同じ内容の投稿を続けてできない仕様になっている.};
--&color(red){注意...Twitterは同じ内容の投稿を続けてできない仕様になっている.};
*** 問題 [#j01e9360]
+Wide character in ...
***自分のボット [#j9b1b5de]
-しいなちゃんぼっと https://twitter.com/seana_bot
-うら(裏企画の)しいなちゃんぼっと https://twitter.com/kmry_bot
|しいなちゃん|うら(裏企画の)しいなちゃん|
|&ref(seana-chan.png,,20%);|&ref(seana-chan-2.png,,20%);|
***【今後】自分宛のツイートを取得して,解析して,返信ツイートをする [#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
--ハッシュタグ
+上記から,本文のみを抽出し,形態素解析,構文解析を行う
+○○手法を用いて,(相手のIDをつけて)返答する
--○○手法は,自分で考える
+得られた情報をログに残す