2008/05/09
php:サイボウズOffice のスケジュールフィード
ほんとはモバイル用カレンダーとかとSyncするためのAPIっぽいです。
perlでcybozu2icalていうのがあったので参考にしました。
perlでcybozu2icalていうのがあったので参考にしました。
<?
//サイボウズのスケジュールフィード
$cybozu = "http://foo.com/cgi-bin/cbag/ag.cgi"
$csv = parse_csv(get_schedule($int_id,$str_passwd));
print_r($csv);
function get_schedule($id,$pw){
$data = array(
'_System' => 'login',
'_Login' => 1,
'_Id' => $id,
'Password' => $pw,
);
$data = http_build_query($data, "", "&");
$context = array(
"http" => array(
"method" => "POST",
"header" => implode("\r\n",array(
"Content-Type: application/x-www-form-urlencoded",
"Content-Length: ".strlen($data)
)),
"content" => $data
)
);
$s = file_get_contents($GLOBALS["cybozu"]."?page=SyncCalendar",false,stream_context_create($context));
//$s = mb_conv($s,"SJIS>UTF8") ;
//↓ShiftJIS は preg じゃなくて eregi で書いてくだされ
return(preg_replace("/(\r\n)+relation\r\n.+$/isu","",$s));
}
function parse_csv($s){
$split_by_dq = explode('"',$s);
$items = array();
$id = 0;
foreach($split_by_dq as $i => $value){
if($i & 1){
array_push($items[$id],$value);
}else{
$rows = explode("\n",$value);
foreach($rows as $j => $row){
$k = $id+$j;
if(!isset($items[$k])) $items[$k] = array();
$items[$k] = array_merge($items[$k],explode(",",$row));
}
$id = $k;
}
}
return($items);
}
?>