基本仕様
天気予報は、Livedoor Weather Hacks APIから取得し、当日の天気が雨っぽかったら「傘を持っていきなさい」というつぶやきを投稿します。Wether Hacksの基本仕様については、「Livedoor の天気予報API(JSON版)を使ってブログパーツを作ってみる」を見てください。
TwitterのAPIを使うには、コンシューマキーなどの取得が必要です。また、今回はボットとして使うので、Access Tokenも必要です。まだ取得していない場合は、「TwitterのAPIを使用するために必要なキーを取得する手順」を参考に取得してください。
PHPサンプル
PHPからTwitter APIを使うライブラリ、twitteroauth を使います。地域は東京に固定しています。Weather HacksのAPIでは、降水確率が取得できないので、テロップ(雨のち晴れなど)に「雨」という文字が含まれていれば、ツイートするようにしています。
<?php require_once(dirname(__FILE__)."/TwitterOAuth/twitteroauth.php"); define('TWITTER_CONSUMER_KEY', '...'); define('TWITTER_CONSUMER_SECRET', '...'); define('TWITTER_ACCESS_TOKEN', '...'); define('TWITTER_ACCESS_TOKEN_SECRET', '...'); function post_status($post_body) { $to = new TwitterOAuth( TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_ACCESS_TOKEN, TWITTER_ACCESS_TOKEN_SECRET ); $req = $to->OAuthRequest( "http://api.twitter.com/1.1/statuses/update.json", "POST", array("status"=>$post_body) ); } function get_weather_on($city) { return json_deocde(file_get_contents( 'http://weather.livedoor.com/forecast/webservice/json/v1?city='.$city)); } $weather = get_weather_on(130010); if (strops($weather->forecasts[0]->telop, '雨') !== false) { post_status('【東京都】傘が必要です'); } exit(0);
ボット化
このPHPスクリプトをcronに登録して、毎日8時につぶやくようにすれば、ボットの完成です。
crontab -e 0 8 * * * /usr/bin/php /home/webmaster/tweetbot.php
0 件のコメント:
コメントを投稿