m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

perlでtwitterAPI(search、update)

メモ用

実際にやらないと覚えないので…
コピーをそのまま使用して動かないとかよくあるので…

準備

https://apps.twitter.com
へアクセスしてアプリの登録とキーを生成しておく
キーは書き込み可能なように対応

search

クエリーで検索してくれます

sample1.pl
#/usr/bin/env perl

use strict;
use warnings;
use Net::Twitter;
use utf8;
use Data::Dumper;
binmode STDOUT, ":utf8";

my $consumer_key = "<consumer_key>";
my $consumer_secret = "<consumer_secret>";
my $access_token = "<access_token>";
my $access_token_secret = "<access_token_secret>";

my $tw_app = Net::Twitter->new({
    traits => [qw/API::RESTv1_1/],
    consumer_key => $consumer_key,
    consumer_secret => $consumer_secret,
    access_token => $access_token,
    access_token_secret => $access_token_secret});

my $res = $tw_app->search({
    q => "痛風",
    lang => "ja",
    rpp => 100
});

foreach my $item(@{$res->{statuses}}){
    #print Dumper($item);
    my $_text = $item->{text};
    $_text =~ s/(\r\n|\n\r|\n|\r)//g;

    # 出力
    print "$item->{created_at} $item->{user}->{name} $_text " . "\n";
}

※自分で生成したキーを設定

$ perl sample1.pl
Fri Nov 21 13:38:01 +0000 2014 43すく8そぶ ソフトバンクいちろーは福井の43歳痛風デブハゲ公務員 → http://t.co/0QFKJphAAy @softbank_ichiro #SoftBank #au #docomo #kddi #Fukui #ペッパー #sbm_iphone6 @masason 
Fri Nov 21 13:28:40 +0000 2014 杉村こずえ とはいえ、首肩の痛み続く。目立った外傷はないが触れるだけでも痛む。ま、まさか。痛風ではないだろうな。 
Fri Nov 21 13:28:26 +0000 2014 S B T N 。 @nkd____sex 冷たいわあ 、痛風って 激痛やんけ … 、 
Fri Nov 21 13:25:56 +0000 2014 P氏@プライマルひこうき雲 痛風脱糞未遂スッキリロックスターもいるし、色々大変だな 
Fri Nov 21 13:21:32 +0000 2014 森髙 史也 RT @dekisugi__kun: 痛風ってね、この尿酸の結晶が血管流れて引き起こされるんだよ。人の命を刈る形をしてるやろ????? http://t.co/JSphGqmlsp 
Fri Nov 21 13:21:11 +0000 2014 生田 瞬 @may_315 自分用のモツをどこかに確保するなり、帰りに買っておくべきでしたね。しかし、モツの食べすぎは痛風の元とか聞いて、最近食ってませんわ。痛風でないけど。 
Fri Nov 21 13:20:41 +0000 2014 綾小路 真吾 http://t.co/s9MqlvcHu0 オジサンの病気だと思ってない?若者にも広がる"痛風"の恐怖 
Fri Nov 21 13:19:36 +0000 2014 おおえど 肉離れした逆の足の親指が痛いのだが、庇ったから痛いのか、とうとう痛風なのか、はたまた痛風なのかわからなくてガクブルなのです。 
Fri Nov 21 13:19:30 +0000 2014 a.k.a.チャズ|`*zωz)ノシ @Sakura_Yu_ki 痛風 
Fri Nov 21 13:18:28 +0000 2014 仕事大好き@知りたがり 風が吹いても痛いから痛風!そんなに痛みが辛い痛風の悩み解消で明るい生活を・・!http://t.c                                                  o/KQXQeZPg9e 
Fri Nov 21 13:16:07 +0000 2014 たい焼きマン 痛風発作なう((((´;ω;`)))) 
Fri Nov 21 13:10:13 +0000 2014 おざまい @tokumei_jieigyo 痛風には気をつけろよー( ̄∀ ̄) 
Fri Nov 21 13:08:19 +0000 2014 大分のらいむ(aya murai) 30歳代痛風になっちゃいましたな話題を聞いてプリン体含む食べ物摂りすぎと水分補給気をつけようと誓った。冬はこってり系美味しいし水分摂らないし。骨が折れたと思ったほど痛かったって。風が吹いても痛いの噂は伊達じゃないらしい。(*_*) 
Fri Nov 21 13:06:01 +0000 2014 43すく6そぶ ソフトバンクいちろーは福井の43歳痛風デブハゲ公務員 → http://t.co/dks1HFxSyC @softbank_ichiro #SoftBank #kddi #au #docomo #Fukui #ペッパー #sbm_iphone6 @masason 
Fri Nov 21 13:05:26 +0000 2014 エリック安田 斯く言う私も、かつてはうつ病患者の一人でした。胴回りが1mを超えるメタボ体型で幼い頃からアトピー性皮膚炎と慢性的なアレルギー性鼻炎に悩まされ続け、29歳の時に痛風も発症。物忘れが酷く常に頭はボンヤリ気味。二時間毎に缶コーヒーを飲まないと仕事が手につかない…そんな状態だったのです 
$ 

なるほど、こんな感じか…
参考にしたものと使用方法が微妙に異なるけど動くのでおk

update

ツイートするやつ

sample2.pl
#/usr/bin/env perl

use strict;
use warnings;
use Net::Twitter;
use utf8;
use Data::Dumper;
binmode STDOUT, ":utf8";

my $consumer_key = "<consumer_key>";
my $consumer_secret = "<consumer_secret>";
my $access_token = "<access_token>";
my $access_token_secret = "<access_token_secret>";

my $tw_app = Net::Twitter->new({
    traits => [qw/API::RESTv1_1/],
    consumer_key => $consumer_key,
    consumer_secret => $consumer_secret,
    access_token => $access_token,
    access_token_secret => $access_token_secret});

if (@ARGV == 1){
    my $text = $ARGV[0];
    print "tweet:$text\n";

    my $res = $tw_app->update($text);
    #print Dumper($res);

}else{
    print "なんかいれて\n";
}

[vagr$ perl sample2.pl bot_test
tweet:bot_test
$

f:id:m_shige1979:20141121225108p:plain

所感

botは意外と簡単に作成できるかもしれない。なんか気になるキーワードで検索して一致したものをツイートするとか…
ネットでいろいろあるけどなんかうまく腰が上がらなかったので今回やってみた。
twitter関連で動かすことはまだ、思いつかないけどいくつかチェックしておこう