誕生日を呟いてくれる自分用bot作る!(のちのちWEBサービスとして。。。!!)
誕生日を登録したら、その日に呟いてくれるBOT作成します!!
のちのちはWEBサービスとして、できれば!と。
でも第一段階は自分専用で作ります。
作り方
・データベースは「days」で、カラムは「id(int)・name(varchar)・birthday(date)」
→idは主キーで auto_increment 指定。・bakeでdaysというプロジェクトフォルダを作ります。
→コントローラー・モデル・ビュー・db_config も作成
作り方参考URL:http://wiki.github.com/slywalker/CakePHPWorkshopKansai/chapter2-blog-tutorial
model/day.php
<?phpclassDayextendsAppModel{
var$name='Day';//本日の日付取得
function getdate(){
$today = getdate();
$data = $this->Check($today);$data = "-".$data['mon']."-".$data['mday'];
return $data;
}//年齢計算
function Age($data){
$today = getdate();if(isset(
$data)){
foreach($data as $k => $v){
$year = explode("-",$v['Day']['birthday']);
$age = (int)$today['year']-(int)$year['0'];
$this->tweet($v,$age);
}
}
return;
}//1桁の月・日に0を付ける
function Check($data){
if(mb_strlen($data['mon']) === 1){
$data['mon'] = "0".$data['mon'];
}
if(mb_strlen($data['mday']) === 1){
$data['mday'] = "0".$data['mday'];
}
return $data;
}//つぶやく
function tweet($v,$age){
$this->Twitter = ConnectionManager::getDataSource('twitter');$text = $v['Day']['name']."'s BirthDay !! ".$age." yeras old!";
$this->Twitter->status_update($text);
}
}?>
controller/days_controller.php
actionを追加function tweet(){
$days = new Day();
$today = $days-> getdate();
$data = $this->Day->find('all',array('conditions'=>array("Day.birthday LIKE" => "%".$today )));
$days->Age($data);
}
・actionに対応するviewを作成
→view/days/tweet.ctp
アクセスは
http://ドキュメントルート(緑の箱が出る画面)/コントローラー名(days)/アクション名(add/tweet etc...)
で、cronで定期的に呼び出したりする。
。