読者です 読者をやめる 読者になる 読者になる

その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

WebService::Simple を使おうとしてハマったのでメモ

Perl

cpan モジュールであるWebService::Simpleを使おうとしたらハマったのでメモしておきます。3時間くらい悩みました。

やろうとしたこと

github のAPI ('https://api.github.com/' から始まるやつ)を叩いて、
任意のレポジトリのpull-request 数を取得しようとしました。
github のAPI を触れるcpan モジュールもあったんですが、
なんだか上手く動かなかったので使うのを諦めました。

ハマる

「リクエスト投げようとしたら失敗しました」という旨のエラーメッセージが出てきて、
プログラムが容赦なくdie しました。ご覧ください、こちらがプログラ無になった瞬間です。

結論

https にクエリを投げるときは、
LWP::Protocol::https
を予めインストールしてなくちゃ駄目!

気づいたきっかけ

和田裕介氏が書かれた、
第4回 Twitterから学ぶ,Web APIのキホン(3):Perl Hackers Hub|gihyo.jp … 技術評論社
に載っていたtwitter API を叩くソースコードを丸っとコピペして走らせてみたところ上手く行く
→やや、よく見たらtwitterAPIURI が'http' から始まっているじゃあないか!
→github のAPI は'https' から始まっているぞ……
WebService::Simple のドキュメントを読む
→LWP を使っているらしい
→それじゃあ、LWP のhttps 通信を行うモジュール入れてみよう
→動いた!!!!

という感じでした。

つまり

最初からちゃんとドキュメント読めよ……という話でございました。

おまけ

せっかくなので、github で任意のリポジトリのpull-request 数を取得するソースをぺたり。