M.C.P.C.: TwitterのAPIの消費され具合を表示するPerlスクリプト
にて、自分のAPI消費具合を知ることができたのですが、まずはOAuth対応、そして、画像に文字を入れてアップロードすれば、わかりやすいんじゃあねえか、というのでやってみる。
今回は、画像を作るところだけ。アップロードしたい人は
M.C.P.C.: Net::Twitterで自画像Uploadは3.12あたりでできるように直っているようだ
をつなげてみてね。
Filename: limitcheck.pl
#!/usr/bin/perl
use strict;
use warnings;
use Config::Pit;
use DateTime;
use Image::Magick;
use Net::Twitter;
use YAML;
my $input_file = '34563_1360706655.png';
my $output_file = 'html/s.png';
my $r = rate_limit_status('twitter.com@username');
my $t = DateTime->from_epoch(
epoch => $r->{reset_time_in_seconds},
time_zone => 'Asia/Tokyo',
);
my $s = "$r->{remaining_hits}/$r->{hourly_limit}\n"
. 'rest: ' . $t->hms;
my $im = Image::Magick->new;
$im->Read($input_file);
my %d = (
font => "ipaexm.ttf",
pointsize => 20,
fill => "Red",
text => $s,
x => 0,
y => 20,
);
$im->Annotate( %d, stroke => 'white', strokewidth => 4 );
$im->Annotate( %d );
$im->Write($output_file);
exit;
sub rate_limit_status {
my $account = shift;
my $config = pit_get($account);
my $consumer = YAML::LoadFile('consumer_keys.yaml');
my $nt = Net::Twitter->new(
traits => [qw/API::REST OAuth/],
consumer_key => $consumer->{consumer_key},
consumer_secret => $consumer->{consumer_key_secret},
ssl => 1,
# username => $config->{username},
# password => $config->{password},
);
$nt->access_token ($config->{access_token});
$nt->access_token_secret($config->{access_token_secret});
my $res = $nt->rate_limit_status();
#my $res = $nt->rate_limit_status({authenticate => 0});
return $res;
}
__END__
Filename: consumer_keys.yaml (自分で用意しよう)
---
"consumer_key": 'aqwsedrftgyhujikolp'
"consumer_key_secret": 'aqswedrftgyhujikolppaqwsderftgyhujikolpygl'
Filename: ~/.pit/default.yaml (自分で用意しよう)
---
"twitter.com@username":
"access_token" : '12345678-qawsedrftgyhujikolp;awsedrftgyhujikorftgy'
"access_token_secret" : 'qawsedrftgyhujikolpaqwsedrftgyhujikolfrtgf'
これ実行しますと、
入力画像
に対し、
出力画像
となります。
あとはアップロードすればよい。
~~~
んで、これTwitterのAPI消費数を取ってきているわけですけれども、ステータスアイコンで文字を表現できるっていうのは色々おもしろいことができるんじゃーねーかって話。
1分ごと更新&アップロードしてデジタル時計、とかできると思うし(アクセス過多で止められてしまわないかが不安ではある)、んーとうちの業界でいえば、印刷通販さんのアカウントで、その日の入稿件数をカウントアップして画像に含めるとか、ただ今電話がつながりにくくなっておりますを動的に入れるとか、フォントベンダーでいえば、そのフォントベンダーのフォントを使った文字をプロフィール画像に入れ込むとか(自社サービスに対してだったら動的生成用サーバライセンスとかいくらでも融通きくだろう的な)、色々ユニークなサービスが考え付くと思うわけなんです。