EC studio EC studio デザインブログ

いよいよ師走に突入しました。
この季節になると良く耳にするのが、「流行語大賞」や「2009年●×大賞」といった1年を振り返る話題ですよね。
Web界隈で言うと、今年話題になったもののひとつとして「Twitter」は外せないのではないでしょうか。

そのTwitterですが、最近ではプログラムによって自動でツイートされるTwitter botも増えてきて、天気予報やニュースを配信する便利系から、お笑い芸人のパロディなどのエンタメ系まで様々です。

プログラマが個人で制作されているケースも多く、Googleで検索すると制作の参考になるサイトが結構引っかかります。
今回は、それらのサイトを参考に個人的にTwitter botを制作したときのメモをまとめたいと思います。
もしよろしければご参考ください。

まずは、Twitter botの核となるプログラム

今回はPHPで組みました。
「なぜ、PHPなのか?」と言われると、特に理由はありませんが、普段WordPressをさわっているデザイナーには、他の言語に比べて見慣れている言語なので、そういう意味ではPHPで組むのはいいかもしれません。

複雑なプログラムは組めないので、まずは簡単なところから、あらかじめ用意した文章をランダムでツイートするというbotを制作してみました。

PHP:
  1. <?php
  2. $url = "http://twitter.com/statuses/update.xml?";
  3. $username = "Twitter-user-name";
  4. $password = "Twitter-password";
  5.  
  6. $randomNum = int;
  7.  
  8. //ツイートする文章を用意
  9. $myPostText=array(
  10. "つぶやくテキストは",
  11. "ここに",
  12. "配列で",
  13. "書いておきます",
  14. "追加する場合も",
  15. "この下にどんどん",
  16. "追加していきます",
  17. );
  18.  
  19. //配列の長さに応じてランダムな数値を出して、ツイート内容を$messageに代入
  20. $arrayLength = count($myPostText) - 1;
  21. $randomNum = mt_rand(0,$arrayLength);
  22.  
  23. $message = $myPostText[$randomNum];
  24.  
  25. //$messageの内容をURLエンコード
  26. $params = "status=". rawurlencode($message);
  27.  
  28. //Twitter API を叩いてツイート
  29. $postResult = file_get_contents(
  30.  $url.$params , false, stream_context_create(
  31.   array(
  32.    "http" => array(
  33.    "method" => "POST",
  34.    "header" => "Authorization: Basic ". base64_encode($username. ":". $password)
  35.    )
  36.   )
  37.  )
  38. );
  39. ?>

この数十行のコードだけでbotとして一応は動いてくれました。

このままコピペで必要な箇所だけ書き直しても使えると思いますが、PHPでのプログラム経験がほとんど無いデザイナーのコードですから、あくまで参考程度に思っていただければと思います。

もし、「もっとこうした方が良いよ」など、お気づきいただいた方はコメントいただけますと嬉しいです。

自動でツイートする環境準備

さて次に、先程制作したプログラムを自動で定期的に実行する環境を準備しないといけないのですが、そういった場合、デザイナーにとっては聞き慣れない「cron」というシステムを使います。

「cron」は、ある特定の処理を設定した時間や曜日などの間隔で定期的に実行するためのシステムで、スケジューラのようなものと言えば分かりやすいでしょうか。

ですが、cronは設定が難しく素人には扱いづらいシステムのようなのですが、探せばあるもので、比較的簡単にしかも無料で利用できるWebサービスがあります。

それがcron-job.orgという、ユーザ登録するだけで使える便利なドイツのサービスです。

cronの設定

では、cron-job.org のアカウント登録からcronの設定までを見ていきましょう。

1). アカウント登録
cron-job.org にアクセスします。
cron_01
図の矢印で示されたリンクをクリックして登録画面に移動します。

登録フォームでは、
cron_02

  1. 1:アカウント名
  2. 2:メールアドレス
  3. 3:パスワード
  4. 4:パスワード(再入力)
  5. 5:利用規約を確認してチェック

最後に、(6)の[登録]ボタンをクリックしてアカウントを作成します。

2). ログイン
次に、cron-job.org にログインします。
cron_03
cron-job.orgのトップページから、登録したメールアドレスとパスワードでログインします。

3). cron の設定
cron_04
図の矢印で示されたリンクをクリックして設定画面に移動します。

cron_05
次に図で示されたリンクをクリックして新しいcron設定を作成します。

cron_06
設定画面では、上から順に

  1. 1.URL : 定期実行するプログラムのパス
  2. 2.Aktiv? : 設定しているcronを有効にするには「ja」を選択
  3. 3.Monats-Tagen : 処理を実行する月を指定
  4. 4.Wochen-Tagen : 曜日を指定
  5. 5.Monaten : 日付を指定
  6. 6.Stunden : 時間を指定
  7. 7.Minuten : 分を指定

となります。

例えば4分間隔で実行するように設定する場合は、月、曜日、日付、時間は全選択にし、最後の分のところを02、06、10・・・と4分おきに選択して、最後に、(8)の「Speichern」をクリックして設定を保存します。

この実行間隔の設定ですが、botをアップしているサーバーに負荷がかかる可能性もあるので、あまり短く設定しない方が良いようです。

実行する月・日を指定すれば、1年に1回の何かの記念日などにツイートするといった使い方もできるかもしれません。

Twitter bot制作にチャレンジ!

このようにして、プログラミングができなくても比較的短時間でTwitter botを制作することができます。
この記事を読んでくださった方も、何か面白いbot制作にチャレンジしてみてください。

また、今回制作したbotをここで紹介できればよかったのですが、都合により控えることにいたしました。
もしご興味持っていただいた方は、実際にTwitter上で探してみてください。
ヒントは、とあるテレビゲームのハンターを勇気付ける(?)キャラクターです。
(現在は少し改良して@付きのツイートに返事するようになっています)


関連した記事:

この記事へのコメント

非常に助かりました!

投稿者: 孝之進 | 2012/1/18 水曜日 1:03:37

孝之進さん、コメントありがとうございます。

投稿者: 西口 誠二 | 2012/1/18 水曜日 11:20:48
投稿者
カテゴリー
人気のエントリー
最近のエントリー
アーカイブ
Copyright© ChatWork, All Rights Reserved. secured by ESET.