誕生日をつぶやくTwitter Botにバグがあった。
いつものように朝、Twitter Botのつぶやきを見ると、今日(2/14)のつぶやきがない。
「あれ?おかしいな?」と思い、プログラムの動作ログを見ると、エラーになっている。
エラーは単純明快で誕生日の人物が取得できていないためエラーになっていた。
実際のWikipediaの2月14日のエントリーには誕生日の人物は掲載されている。
ということは必然的に解析部分のエラーとなる。
調べてみると、とある条件で取得できないパターンがあることが判明。
今回はまさにそれにハマっていた。
ということで、朝からバグ取りをして、Twitter Botの再開をしたのであった。
Archive
先日、Twitter Botを作ったが、Botとわかってフォローしてくれているユーザがいる。
非常に有り難いことである。
面白い(?)とか使えるものであれば使ってくれたりするということである。
そりゃ、すごいフォロー数ではないけれども、何の告知もアピールもせずに、どこからともなくフォローしてくれるようになるというのは、ちょっと嬉しかったりする。
もちろん、BotをBotがフォローする、というパターンもあるけれども、それはそれでどんどん広まっていくことには違いない。
というところで、そろそろまた次のプログラムを作ってみようかと思う。
何を作るのかが肝になるのだが、ここは単純に自分が欲しいと思っているものを作るのがヤル気がでるかな、と思っている。
おそらく、私が作ろうと思っているものは、きっと誰かが同じようなものを作っているとは思うのだが、やはり自分専用に作る、作れるというのが大きな魅力だ。
ということで、そろそろ着手するつもりだ。
ちなみに、どういうものを作ろうとしているのかは、今回は内緒(笑)で進める。
先日作成していたTwitterBotにGoo.glの短縮URLを追加した。
結局、先のエントリーの「BSDあれこれ」さんのものは全く使わず、シンプルな方法を選択。
シンプルな方法とはOAuthは使わず、JSON形式でLWP::UserAgentを使ってPOSTする方法である。
割とあっさりできた。
次回、起動するBotからリンク情報が埋まるはずである。
もし、リンク先にミスがあった場合には連絡してもらえると嬉しい限りだ。
ところで、さらにネットで調べたところ、CodeZineにPerlモジュールもPHP用のラッパーもあると記載されていた。
それを使えばよかったかな、と思うが、まぁ大したことではないので、よしとしよう。
- CodeZine:短縮URLサービス「Google URL Shortener」公開 PerlやPHPの関連モジュールも登場
- Perlモジュール:WWW::Shorten::Google
- PHPラッパー:Services_ShortURL_Googl
先日、PerlでTwitterに投稿するBotを作ったが、今度はPHPで作ってみた。
ただ、すでにアプリ登録しているものだと何なので、もう1つテスト用のConsumer keyとConsumer secretを発行。
もちろん、アクセス用のTokenも同時に発行した。
それでテスト投稿もしてみた。
きちんと投稿できたので満足。
ところでPHPでのTwitterBotの作成にあたり、PEARのパッケージをいくつかインストールした。
インストールの前に、PEARのアップグレードも行った。
# pear upgrade PEAR # pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.7 stable Console_Getopt 1.2.3 stable PEAR 1.9.1 stable Structures_Graph 1.0.4 stable XML_RPC 1.5.1 stable XML_Util 1.2.1 stable # pear install Net_URL # pear install Net_URL2-beta # pear install http_request # pear install http_request2-0.5.2 # pear install HTTP_OAuth-0.2.2 # pear install Services_Twitter-beta最終的にこんな感じのパッケージだけで投稿できるようになった。
# pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.7 stable Console_Getopt 1.2.3 stable HTTP_OAuth 0.2.2 alpha HTTP_Request 1.4.4 stable HTTP_Request2 0.5.2 alpha Net_Socket 1.0.10 stable Net_URL 1.0.15 stable Net_URL2 0.3.1 beta PEAR 1.9.1 stable Services_Twitter 0.6.3 beta Structures_Graph 1.0.4 stable XML_RPC 1.5.1 stable XML_Util 1.2.1 stable
先日、TwitterのBotを作ってみようかな、ということでPerlモジュールのNet::Twitterモジュールをインストールしたけれども、モジュールが足らない!というエラーが頻発。
なんやねん!ということで、チマチマとインストールした。
最終的に問題なくなったと思い、サンプルプログラムを実行するも全然ツイートできない。
うーん原因がわからない、ということでperldoc Net::Twitterでマニュアルを読む。
http_messageでHTTPのメッセージが参照できることを確認できたので、サンプルプログラムに追記。
すると、
Protocol scheme 'https' is not supported (Crypt::SSLeay not installed)
というメッセージ。
なんだ、まだモジュールが足らなかったのか、ということで、Crypt::SSLeayモジュールをインストールして実行。
ついに、ツイートができたのであった。
- http://twitter.com/geekwind (@geekwind)