TOP000_G5.php 4.94 KB
<?php 
//*****************************************************************************
//* 
//* プログラム名:カレンダーAPI接続情報取得(他人)
//* プログラムID:TOP000_G5.php
//* 作成者      :
//* 
//*****************************************************************************
header("Content-type: text/html; charset=EUC-JP");
include("include/session_start.inc");
include("include/SessionChk.inc");
include('include/smarty.conf');
include('include/date.inc');
include('./include/Get_GooGleCal.inc');
include('./include/XML_unserialize.php');
include('include/Google_API_Info.inc');

$strDBinc="include/dbcon.inc";
include($strDBinc);

if ($scdl_bumon!=99){
	if ($scdl_bumon==0){
		$SQL = "SELECT syain_cd as syain_cd_a,name_kj_sei,name_kj_mei".
			   " FROM syain_tbl Where syain_cd<>'$PHP_SYAIN_CD' and del_flg=true Order By Disp_rank";
	}else{
		$SQL = "SELECT syain_tbl.syain_cd as syain_cd_a,name_kj_sei,name_kj_mei ".
			   "FROM syain_tbl INNER JOIN syozoku_tbl ON ".
			   "syain_tbl.syain_cd = syozoku_tbl.syain_cd".
			   " Where syain_tbl.syain_cd<>'$PHP_SYAIN_CD' and syozoku_cd=$scdl_bumon and del_flg=true ".
			   " Order By Disp_rank";
	}

	$ALSCH_RS = pg_exec($SQL);
	$intMax=pg_numrows($ALSCH_RS)-1;

	for($intCnt = 0; $intCnt < $intMax ; $intCnt++) {
		$objRecData = pg_fetch_object($ALSCH_RS, $intCnt);
		$strSyain[$intCnt]=$objRecData->syain_cd_a;

	}

}else{

	//*****個人設定*****//
	$strSQL="SELECT syain_cd,disp_no,mygroup,jyokyo_flg FROM kojinset_TBL WHERE syain_cd='$PHP_SYAIN_CD'";
	$objRecSet = pg_exec($strSQL);

	if (pg_numrows($objRecSet)>0){
		$objRecData = pg_fetch_object($objRecSet, 0);
		if ($intsts==0){
			if($scdl_bumon==""){
				$scdl_bumon=$objRecData->disp_no;
			}
		$bumon_no=$objRecData->disp_no;
		}

		$mygroup=$objRecData->mygroup;

		if ($objRecData->jyokyo_flg==Null || $objRecData->jyokyo_flg==""){
			$jyokyo_flg=1;
		}else{
			$jyokyo_flg=$objRecData->jyokyo_flg;
		}
	}else{

		if ($intsts==0){
			if($scdl_bumon==""){
				$scdl_bumon=0;
			}
			$bumon_no=0;
		}
		$jyokyo_flg=1;

	}

	$strData=split("/", $mygroup);

	for ($intCnt = 0; $intCnt < count($strData)-1; $intCnt++) {
		$strSyain[$intCnt]=$strData[$intCnt];
	}

}

$RetunData = array();
for ($intCnt = 0; $intCnt < count($strSyain)-1; $intCnt++) {

	$reflesh_token = "";
	$access_token = "";
	$calender_id = "";

	//カレンダー公開チェック
	$strCHKSQL = "select memo from kojin_data_tbl where syain_cd='".$strSyain[$intCnt]."' and seq=53";
	$strSQLTest = "select memo from kojin_data_tbl where syain_cd='".$strSyain[$intCnt]."' and seq=53";

	$objGoogleData = pg_exec($strCHKSQL);
	if(pg_numrows($objGoogleData) > 0){
		$objGoogleRec = pg_fetch_object($objGoogleData,0);

		//カレンダー公開の場合
		if ($objGoogleRec->memo=="1"){
			$objGoogleRec = pg_fetch_object($objGoogleData,0);
			if ($objGoogleRec->memo=="1"){

				//リフレッシュトークン取得
				$strSQL="SELECT * FROM kojin_data_tbl WHERE seq=52 AND syain_cd='".$strSyain[$intCnt]."'";

				$objID = pg_exec($strSQL);

				if($objID==false){
					echo("SQL実行に失敗しました(SELECT)");
					exit;
				}
				if (pg_numrows($objID) > 0){
					$objIDData = pg_fetch_object($objID, 0);
					$reflesh_token = $objIDData->memo;
				}else{
					$reflesh_token = "";
				}

				//リフレッシュトークンからアクセストークン取得
				if($reflesh_token){

					$url = "https://accounts.google.com/o/oauth2/token";
					$params = array(
				    	'client_id'=>CLIENT_ID,
		    			'client_secret'=>CLIENT_SECRET,
					    'refresh_token'=>$reflesh_token,
	    				'grant_type'=>'refresh_token'
					);

					$ch = curl_init();
					curl_setopt($ch, CURLOPT_URL, $url);
					curl_setopt($ch, CURLOPT_POST, true);
					curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
					curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
					$json = curl_exec($ch);
					curl_close($ch);

					$token_array = json_decode($json, true) ;

					if($token_array["access_token"]){
						$access_token = $token_array["access_token"];

						//アクセストークンを更新
						$strSQL="DELETE FROM kojin_data_tbl WHERE seq=51 AND syain_cd='".$strSyain[$intCnt]."'";
						$objID = pg_exec($strSQL);
						$strSQL="INSERT INTO kojin_data_tbl (syain_cd, seq, memo) VALUES ('".$strSyain[$intCnt]."',51, '".$access_token."')";
						$objID = pg_exec($strSQL);
					}else{
						$access_token = "";
					}
				}

				//カレンダーID取得
				$strSQL="SELECT * FROM kojin_data_tbl WHERE seq=50 AND syain_cd='".$strSyain[$intCnt]."'";
				$objID = pg_exec($strSQL);
	
				if($objID==false){
					echo("SQL実行に失敗しました(SELECT)");
					exit;
				}
				if (pg_numrows($objID) > 0){
					$objIDData=pg_fetch_object($objID, 0);
					$calender_id=$objIDData->memo;
				}else{
					$calender_id="";
				}

			}
		}

	}

	//データセット
	$RetunData[$strSyain[$intCnt]]["syain_cd"] = $strSyain[$intCnt];
	$RetunData[$strSyain[$intCnt]]["access_token"] = $access_token;
	$RetunData[$strSyain[$intCnt]]["calender_id"] = $calender_id;
	$RetunData[$strSyain[$intCnt]]["sql"] = $strSQLTest;

}

echo json_encode($RetunData);


?>