LoginSignup
4

More than 5 years have passed since last update.

perlでtweetしてみた。

Posted at

perlでtwitter。

最近perlを書くことになり、練習がてらtwitterAPI叩いてみた。
tokenいれてよしなにするだけだと思っていたら地味に躓いたので覚書程度に。

対象

  • perlって何?
  • perl触ってみたい

という方。

tool

  • plenv
  • Net::Twitter::Lite::WithAPIv1_1
  • YAML(token扱うために使いました 他に良い方法あればご教授願います><)

Let's Hack.

環境作るところからしたいと思います。

plenv install

まずはplenv本体とperl-buildをgit clone。

git clone git://github.com/tokuhirom/plenv.git ~/.plenv
git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/

pathを通します。
.bash_profileにでも追記してください。

export PATH="$HOME/.plenv/bin:$PATH"
eval "$(plenv init -)"

追記後、反映させます。

exec $SHELL -l

perl install

plenv install -l

とするといろいろバージョンが表示されます。
好きなものをinstallしましょう。

plenv install 5.27.2
plenv rehash
plenv global 5.27.2

perlのバージョンが変わったかと思います。
ついでにcpanもinstallします。

plenv install-cpanm

coding

Net::Twitter::Lite::WithAPIv1_1というものを使います。
参考記事を探すとNet::TwitterやNet::Twitter::Liteとなっているのですが、Twitter API 1.0が廃止されたことによって、これらも使えなくなってしまったのでNet::Twitter::Lite::WithAPIv1_1を使います。

cpan install Net::Twitter::Lite::WithAPIv1_1
cpan install YAML::Tiny

installできました。

twitter.pl
use strict;
use warnings;
use utf8;
use Net::Twitter::Lite::WithAPIv1_1;
use YAML::Tiny;

my $data = YAML::Tiny->new;
$data = YAML::Tiny->read('./secret_key.yml');
my $key = $data->[0];

my $nt = Net::Twitter::Lite::WithAPIv1_1->new(
  consumer_key        => $key->{'consumer_key'},
  consumer_secret     => $key->{'consumer_secret'},
  access_token        => $key->{'access_token'},
  access_token_secret => $key->{'access_token_secret'},
  legacy_lists_api    => 1,
  ssl                 => 1
);

eval {
  $nt->update('わふー');
};

access tokenは別ファイルに切り出してます。

secret_key.yml
consumer_key: 'こんしゅーまーきー'
consumer_secret: 'こんしゅーまーしーくれっと'
access_token: 'あくせすとーくん'
access_token_secret: 'あくせすとーくんしーくれっと'

あとは perl twitter.pl とすれば動くと思います。

Net::Twitter::Liteとかじゃだめ。インスタンス生成するときに ssl => 1 がないとだめ。というところにきづかずちょっと手こずってしまった。。。

最後に

ドキュメントをちゃんと読めば詰まることはなかった。。。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4