基本仕様
天気予報は、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 件のコメント:
コメントを投稿