zenith = new ZenithFB(); $this->slack = new SlackChat(); } public function initController( RequestInterface $request, ResponseInterface $response, LoggerInterface $logger ) { $date = ""; $today = date('Y-m-d'); $argv = @$request->getServer()['argv']; if(!is_null($argv)) { $method = $argv[2]; $params = @array_slice($argv, 3); if(!@count($params)) return; foreach($params as $v) { $value = preg_replace('/[^0-9\-]+/', '', $v); if(preg_match('/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/', $value)) { //request argument에 날짜형식이 있는지 체크 $date = $v; break; } } /* $hour = date("G"); //24-hour format of an hour without leading zeros if($date == $today && ($hour >= 0 && $hour <= 7)) { CLI::write("당일 0시~8시는 자동업데이트를 사용할 수 없습니다.", "light_purple"); exit; } */ } } public function getAccounts() { $this->zenith->updateAdAccounts(); } public function getLongLivedAccessToken() { $this->zenith->getLongLivedAccessToken(); } public function getInsight($all=null, $date=null, $edate=null) { CLI::clearScreen(); if($all == null) $all = CLI::prompt("인사이트가 수신된 캠페인,광고그룹,광고 데이터를 함께 수신하시겠습니까?\n(시간이 오래 걸릴 수 있습니다.)", ["true","false"]); if($date == null) $date = CLI::prompt("인사이트를 수신할 기간 중 시작날짜를 입력해주세요.", date('Y-m-d')); if($edate == null) $edate = CLI::prompt("인사이트를 수신할 기간 중 종료날짜를 입력해주세요.", $date); // $run = CLI::prompt("광고데이터를 ".($all=="true"?"포함":"미포함")."하여 {$date} ~ {$edate} 기간의 인사이트를 수신합니다.",["y","n"]); // if($run != 'y') return false; $this->zenith->getAsyncInsights($all, $date, $edate); CLI::write("데이터 수신이 완료되었습니다.", "yellow"); } public function adLeadByAd($ad_id = null, $from = null, $to = null) { CLI::clearScreen(); if($ad_id == null) $ad_id = CLI::prompt("잠재고객 업데이트 할 광고ID를 입력해주세요."); if($from == null) $from = CLI::prompt("잠재고객 업데이트 할 시작날짜를 입력해주세요.", date('Y-m-d')); if($to == null) $to = CLI::prompt("잠재고객 업데이트 할 종료날짜를 입력해주세요.", $from); $result = $this->zenith->adLeadByAd($ad_id, $from, $to); CLI::write("잠재고객 업데이트 완료되었습니다.", "yellow"); } public function getAdLead($from = null, $to = null) { CLI::clearScreen(); if($from == null) $from = CLI::prompt("잠재고객 업데이트 할 시작날짜를 입력해주세요.", date('Y-m-d')); if($to == null) $to = CLI::prompt("잠재고객 업데이트 할 종료날짜를 입력해주세요.", date('Y-m-d')); // $run = CLI::prompt("{$from}~{$to}일자의 잠재고객을 업데이트 합니다.",["y","n"]); // if($run != 'y') return false; $this->zenith->getAdLead($from, $to); } public function updateAll() { CLI::clearScreen(); // $run = CLI::prompt("캠페인/광고그룹/광고를 업데이트 합니다.",["y","n"]); // if($run != 'y') return false; CLI::write("캠페인/광고그룹/광고를 업데이트 합니다.", "light_red"); $this->zenith->updateAllByAccounts(); /* $getAds = $this->zenith->getAds(); $updateAdsets = $this->zenith->updateAdsets($getAds); $updateCampaigns = $this->zenith->updateCampaigns($updateAdsets); */ } public function updateDB($sdate = null, $edate = null) { CLI::clearScreen(); if($sdate == null) $sdate = CLI::prompt("유효DB 업데이트 할 시작날짜를 입력해주세요.", date('Y-m-d')); if($edate == null) $edate = CLI::prompt("유효DB 업데이트 할 종료날짜를 입력해주세요.", $sdate); $sdate = date_create($sdate); $edate = date_create(date('Y-m-d', strtotime($edate.'+1 days'))); $interval = DateInterval::createFromDateString('1 day'); $date_range = new DatePeriod($sdate, $interval, $edate); foreach($date_range as $date) { $date = $date->format('Y-m-d'); CLI::write("{$date} 유효DB를 업데이트 합니다.", "light_red"); $this->zenith->getAdsUseLanding($date); } } public function updateCampaign() { $campaign_id = CLI::prompt("업데이트 할 캠페인 ID를 입력해주세요.", null); if(is_null($campaign_id)) return; $data = [ ['campaign_id'=>$campaign_id] ]; $campaign = $this->zenith->updateCampaigns($data); print_r($campaign); } public function updateAds() { CLI::clearScreen(); // $run = CLI::prompt("광고를 업데이트 합니다.",["y","n"]); // if($run != 'y') return false; CLI::write("광고를 업데이트 합니다.", "light_red"); $this->zenith->updateAds(); } public function updateAdCreatives() { CLI::clearScreen(); $ad_id = CLI::prompt("업데이트 할 광고 ID를 입력해주세요.", null); if(is_null($ad_id)) return; $data = [ ['id'=>$ad_id] ]; // $run = CLI::prompt("광고를 업데이트 합니다.",["y","n"]); // if($run != 'y') return false; CLI::write("광고소재를 업데이트 합니다.", "light_red"); $adcreative = $this->zenith->updateAdCreatives($data); print_r($adcreative); } }